Thema: Delphi Hinweis zu ZLIB

Einzelnen Beitrag anzeigen

Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#1

Hinweis zu ZLIB

  Alt 7. Nov 2007, 10:35
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...
Peter Schaible
  Mit Zitat antworten Zitat