Also, die Eckdaten der Datei kannst du ja so am Anfang des Archivs speichern. Den Inhalt der Datei ebenfalls im Record zu speichern wäre zwar nicht unmöglich, aber nich sehr günstig. Ich würde statt
FileContent : File;
FileContentOffset : Cardinal;
verwenden und die Inhalte der Dateien per TFileStream (siehe
OH) nach den records in das Archiv schreiben. FileContentOffset ist dann die Position der Daten der jeweiligen Datei im Archiv. Du kannst diese dann z.B. mit
Delphi-Quellcode:
var
fs : TFileStream;
fsData : TFileStream;
//..
begin
fs := TFileStream.Create('C:\meine.pak', fmOpenRead);
fsData := TFileStream.Create(Datensatz.FileName, fmOpenReadWrite);
try
fs.Seek(Datensatz.FileContentOffset, soFromBeginning);
fsData.CopyFrom(fs, Datensatz.FileSize);
finally
fsData.Free;
end;
end;
einlesen.