Hier der Umweg über einen String: Der String und auch schon LUnZip.Size sind zu kurz:
Delphi-Quellcode:
var
LInput:TFileStream;
LUnZip:TZDecompressionStream;
strOutput: TStringStream;
Splitted: TArray<String>;
i:integer;
begin
Result:=TStringList.Create(true);
LInput:=TFileStream.Create(filename,fmOpenRead + fmShareDenyNone);
LUnZip:=TZDecompressionStream.Create(LInput,15+32);
strOutput:= TStringStream.Create;
strOutput.CopyFrom(LUnZip, LUnZip.Size);
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;