Hallo
Bin gerade über etwas gemeines gestolpert und möchte euch das zeigen, damit eventuell andere nicht in dieselbe Falle laufen. Der folgende Code zum Packen von Daten mit
zLib funktioniert nicht da erst mit dem jCompressor.Free alle Daten in den TargetStream geschrieben werden. Leider gibt es hier kein "Flush", wie es früher bei Datei operationen möglich war.
Delphi-Quellcode:
...
TargetStream := T???Stream.Create('
');
jCompressor :=
zLib.TCompressionStream.Create(clDefault, TargetStream);
jCompressor.
Write(Buffer,Size);
Result := TargetStream.Size;
...
Richtig ist in diesem Beispiel also
Delphi-Quellcode:
...
TargetStream := T???Stream.Create('
');
jCompressor :=
zLib.TCompressionStream.Create(clDefault, TargetStream);
jCompressor.
Write(Buffer,Size);
FreeAndNil(jCompressor);
Result := TargetStream.Size;
...
ciao...