Also so wie ich es vermutet habe?
Na dann guck dir das doch mal auf einem Blattpapier an. Wenn du die erste Datei haben willst, liest du die Dateigröße der zweiten (und in diesem Fall letzten Datei) aus. Dann gehst du so viele Bytes in deiner Gesamtdatei zurück + die Länge der Größeninformation der ersten Datei und liest die Größe der ersten Datei aus. Dann gehst du wieder die entsprechende Anzahl Bytes zurück und leist ab da so viele Bytes, wie die Datei lang ist und schreibst sie auf die Festplatte.
Das kann man geschickt kapsel, so dass du am Schluss eine Routine hat, der du nur die Gesamtdatei angibst und die wievielte Datei du extrahieren möchtest:
Delphi-Quelltext
1:
| procedure ExtractFile(MainFilename: string; Index: Integer; DestFilename: string); |
Wenn du das hast, kannst du einfach diese Routine in einer Schleife aufrufen und so alle Dateien extrahieren.
Du kannst dir auch mal mein Selbstentpackedes Archiv angucken:
www.michael-puff.de/...er/Delphi/Programme/ -> SFXTools, da mache ich was ähnliches.