Delphi-Quellcode:
var
LInput:TFileStream;
LUnZip:TZDecompressionStream;
strOutput: TStringStream;
Splitted: TArray<String>;
i, x:integer;
begin
Result:=TStringList.Create(true);
LInput:=TFileStream.Create(filename,fmOpenRead + fmShareDenyNone);
LUnZip:=TZDecompressionStream.Create(LInput,15+32); // '15+32' macht den Unterschied zwischen data-error und 'juhu'
strOutput:= TStringStream.Create;
strOutput.CopyFrom(LUnZip, LUnZip.Size);
for x := Low(strOutput.DataString) to High(strOutput.DataString) do // das mit dem LUnZip machen... ich weiß nur gerade nicht wie
if strOutput.DataString[x] = #0 then
strOutput.DataString[x] = VK_RETURN;
i:=length(strOutput.DataString);
Splitted := strOutput.DataString.Split([#10]);
strOutput.free();
for i:=0 to length(splitted)-1 do
result.add(splitted[i]);
LUnZip.Free;
LInput.Free;
end;
Könnte das vielleicht helfen? Nur hier getippt um zu veranschaulichen was ich meine...