Einzelnen Beitrag anzeigen

Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#1

Ärger mit ZLibs "CompressBuffer"

  Alt 10. Nov 2005, 08:50
Meine Güte ... offenbar sehe ich den Wald vor lauter Bäumen nicht. Ich möchte eine Handvoll Daten komprimieren. Ich reserviere mir Speicher, kloppe die Daten dort hinein und übergebe das Ganze dann an die Funktion "CompressBuf()". Da ich im Endeffekt nur .... randomisierte Daten ... herausbekomme, jedoch kein gültiges Archiv, schreibe ich die Daten vorher und nachher mal in eine Datei - nur testhalber:

Delphi-Quellcode:
pOut:= NIL; // wird von CompressBuf behandelt
sWrite:= 0; // wird von CompressBuf behandelt

assignfile( f, './.cache/test_out_before.xml' );
rewrite( f, 1 );
blockwrite( f, pIn^, sSize );
closefile( f );

// An dieser Stelle angekommen stehen meine Ausgangsdaten
// korrekt in der eben erzeugten Datei

CompressBuf( pIn, sSize, pOut, sWrite );


assignfile( f, './.cache/test_out_after.gz' );
rewrite( f, 1 );
blockwrite( f, pOut^, sWrite );
closefile( f );

// An dieser Stelle angekommen steht nur "Käse" in der
// erzeugten Datei - sie ist eben kein gültiges Archiv

Auf das Problem gestoßen bin ich, als ich eigentlich etwas dekomprimieren wollte und das auch nicht so ganz prächtig lief. Offenbar mache ich hier etwas Prinzipielles mit der ZLib falsch. Nur was?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat