Hi,
ich möchte ZipForge verwenden, um eine Textdatei mit ca. 50000 Zeilen aus einer Zip-Datei im Arbeitsspeicher zu entpacken und in eine TStringList einzulesen. Leider kennt ZipForge nur die 4 Entpackfunktionen ExtractFiles, ExtractToBuffer, ExtractToStream und ExtractToString, wovon letztere nur die Angabe eines normalen Strings erlaubt. Das reicht für diese Datenmenge natürlich nicht aus.
Geschrieben habe ich eine entsprechende Testfunktion, wie das ursprünglich mit der StringListe geplant war. Leider funktioniert ExtractToString mit diesem Parameter nicht:
Delphi-Quellcode:
procedure TMainForm.bnStartClick(Sender: TObject);
var testliste : TStringList;
begin
testliste:=TStringList.Create; {initialize Stringlist}
with Archiver do
begin
FileName := 'zipfile.zip';
Password := 'test';
OpenArchive;
ExtractToString('TextFileWithinZipFile.txt', testliste);
CloseArchive;
end;
ProcessStringList(testliste); {internal function to proces the contents of the stringlist}
testliste.Free; {deinitialize stringlist}
end;
Kennt jemand einen anderen Weg, die Textdatei in die StringListe einzulesen, ohne temporär eine Textdatei zu erstellen und diese wiederum einzulesen?
Danke für die Vorschläge.