AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dateien zusammenfügen und später wieder Zerlegen
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien zusammenfügen und später wieder Zerlegen

Ein Thema von muhael · begonnen am 5. Okt 2015 · letzter Beitrag vom 6. Okt 2015
Antwort Antwort
Seite 1 von 3  1 23      
muhael

Registriert seit: 5. Mär 2013
42 Beiträge
 
#1

Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 10:34
Delphi-Version: 7
Hallo meine Lieben Delphianer!

Zu meinem Programm:
Ich habe einen Updater der von einem FTP Server die benötigten Dateien herunterlädt und speichert (IndyFTP) nun sind aber über die Zeit relativ viele und auch viele kleine Dateien Hinzugekommen.
Nun gibt es ja das Phänomen wenn man viele kleine Dateien Runterläd, kopiert o.ä. das sich der ganze Vorgang dadurch drastisch in die Länge zieht.

Meine Idee: die ganzen kleinen Dateien zu einer zusammenzufügen (Nein ich möchte bzw kann nicht Abbrevia, Zlib, Jedis oder ZipMaster verwenden da ich diese nicht installieren kann oder geschweige nach der Installation benutzen kann ). außerdem ist die kommpression bei solch kleinen Dateien viel zu gering damit das irgendwas aus macht.
Nun habe ich schon ein wenig zu Streams gelesen und ein wenig Code http://www.delphipraxis.net/154806-datei-datei-anhaengen.html gefunden.

Nun muss ich das auf meine Dateien anwenden und auch auf die Masse der Dateien. Dazu müssten eventuell noch die Dateinamen in den "Header". aber es gibt für den Updater eine Update.txt wo drin steht wie die Datei Heißt also denke nicht notwendig oder?

meine Funktion sieht z.Z so aus und meine Fragen lauten.
1.) wie muss ich die Dateien(TStrings) in den Stream einbinden?
2.) wie neben der Länge noch den Namen Speichern?
3.) wie lese ich die Daten wieder aus?

sorry wegen den Fragen ist das erste mal mit Streams

Delphi-Quellcode:
Function Writedata(Files:TStrings; Filename:string):boolean;
  Var lStream : TStream;
      lStartPos : Int64;
      lDataSize : Cardinal;
      i : Integer;
begin
  lStream := TFileStream.Create(Filename, fmCreate);
  try
    lStartPos := 0;
    lStream.Position := lStream.Position + sizeof(lDataSize);
    for i := 0 to Files.Count-1 do begin
      // Lade Dateien
      // In STream Speichern...
      lDataSize := lStream.Position - lStartPos - sizeof(lDataSize);
      lStream.Position := lStartPos;
      lStream.Write(lDataSize, sizeof(lDataSize));
      // wie die endung speichern?
    end;
    Result := true;
  except
    Result := False;
  end;
end;
LG muhael
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.293 Beiträge
 
Delphi 12 Athens
 
#2

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 10:38
Hallo...
Zitat:
Nein ich möchte bzw kann nicht Abbrevia, Zlib, Jedis oder ZipMaster verwenden da ich diese nicht installieren kann oder geschweige nach der Installation benutzen kann
Kannst du die Begründung mal ein wenig ausführlicher machen? Ich denke das es vielen mit dem Verständnis so geht wie mir...Unverständnis, da z.B. ZIP in so einem Falle ein gebräuchliches Mittel ist.
  Mit Zitat antworten Zitat
muhael

Registriert seit: 5. Mär 2013
42 Beiträge
 
#3

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 10:43
also ich wollte es mit Zip machen bei Zlib sowie Zipmaster kann ich die Komponenten nach der installation nicht verwenden da das package nciht gefunden wird(ES IST ABER DA O_O) und abbrevia lässt sich nciht installieren ka warum es will einfach nicht
  Mit Zitat antworten Zitat
muhael

Registriert seit: 5. Mär 2013
42 Beiträge
 
#4

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 10:53
bzw Zlib nimmt nur eine Datei und komprimiert diese meiner Kenntniss nach, korrigiere mich wenn ich falsch liege :/
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.293 Beiträge
 
Delphi 12 Athens
 
#5

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 10:54
Ahhh...
Es ist also prinzipiell möglich auch ZIP zu benutzen. Es scheitert nur an der Verfügbarkeit einer Komponente. Imho wäre es am einfachsten wenn wir dir helfen die ZIP Komponente ans Laufen zu bekommen. Damit hast du dann am wenigsten Streß auf beiden Seiten. Das ZIP liegt ja schon fertig auf dem Server. Du mußt es dann nur noch nach dem Download auspacken.
Gib uns mal ein wenig mehr Info´s zu deinem System: Delphi Version, welche Komponenten in welchen Versionen du probiert hast. Wie du die "Installation" probiert hast. Vieleicht stoßen wir ja auf einen Flüchtigkeitsfehler und das Kind ist geschaukelt.
  Mit Zitat antworten Zitat
muhael

Registriert seit: 5. Mär 2013
42 Beiträge
 
#6

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 10:58
okay benutze Delphi 7 Enterprise
habe Zipmaster über die Setup.exe installieren lassen (sollte auch noch installiert sein)
Zlib kaum ausprobiert wegen nur einer Datei :/
und abbrevia hab ich die 5.0 versucht da ist es aber bei der installation gescheitert was genau weiß ich nicht mehr glaube da hat was gefehlt in dem Ordner
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.293 Beiträge
 
Delphi 12 Athens
 
#7

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 11:19
Ok,

versuche mal TZip im Anhang. Klein aber fein.

1. Components.zip entpacken
2. Neues Package -> Name "MyZip" zum Bleistift.
3. alle PAS hinzufügen.
4. Erzeugen
5. Installieren
6. Hilfe lesen + Beispiele gucken
7. Die DLL´s aus DLLs.zip liegen dann im Programm Ordner
Angehängte Dateien
Dateityp: zip tzip.zip (448,9 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 11:21
Hallo,

zu ZipMaster:

Die Quelltexte befinden sich in irgendeinem Verzeichnis.
Bei mir ist es \Delphi\Komponenten\ZipMaster.

Suche bitte bei Dir das entsprechende Verzeichnis.

Dort findest Du dann ein Unterverzeichnis "Packages".

Darin sollte eine Datei mit der Dateiendung ".dpk" zu finden sein, aus deren Namen sich ergibt, dass sie für Delphi 7 gedacht ist.

Die ist bei mir die Datei "ZMstr191D7.dpk".

Diese Datei öffnest Du bitte mit Delphi (Datei -> Projekt öffnen), im Dateiauswahldialog die Dateiendung ggfls. auf .dpk ändern.

Dann betätigst Du den Button "Compilieren" (oder halt Strg+F9).

Anschließend betätigst Du den Button "Installieren".

Eventuell musst Du in den Projektoptionen noch die Suchpfade anpassen, aber dies ist nur erforderlich, wenn beim Kompilieren entsprechende Fehlermeldungen erscheinen.

Wenns dabei Probleme gibt, bitte hier die Fehlermeldungen posten und weiterfragen.
  Mit Zitat antworten Zitat
muhael

Registriert seit: 5. Mär 2013
42 Beiträge
 
#9

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 11:29
da müsste ich die dll´s mitliefern oder?

wäre nicht so toll^^ da es auch einen installer gibt der das progg eig auf die aktuellste Version patcht gleich :/
  Mit Zitat antworten Zitat
muhael

Registriert seit: 5. Mär 2013
42 Beiträge
 
#10

AW: Dateien zusammenfügen und später wieder Zerlegen

  Alt 5. Okt 2015, 11:34
[Fatal Error] zipdemo2.dpr(50): File not found: 'ZipMstr.dcu'
Meh hab soweit compiliert und installiert hat gefunzt beim starten einer Demo dann der fehler hier
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz