Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:23
Nuja

Du brauchst wohl auch den Dateinamen, oder?

dann würd ichs so machen:

Delphi-Quellcode:
type
  TFileHeader = record
    len: Int64;
    name: string;
    path: string;
Mit dem Filestream dann schreiben:

Delphi-Quellcode:
var files: array of TFileHeader;
    fs: TFIleStream;
    ms: TMemoryStream;
    i: Integer;
    slen: Int64;
begin
  ms := TMemoryStream.Create;
  fs := TFileStream.Create('archive.xzs',fmOpenCreate);
  for i := 0 to high(files) do
    begin
      slen := length(files[i].name);
      fs.write(slen); //länge des dateinamens schreibeb
      fs.Write(@files[i].name[1],slen); //dateinamen schreiben
      fs.Write(len); //länge der datei schreiben
      ms.size := 0;
      ms.LoadFromFile(files[i].path); //datei laden
      ms.Position := 0;
      fs.CopyFromStream(ms,ms.size); //datei schreiben
    end;
end;
so weisst du beim laden immer, wie lange deine daten sind.

Im übrigen würde ich auch zu einer vorhandenen Lösung greifen, ich meine,m was hast du gegen Komprimierung?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat