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