Ich habe hier ein kleines Problem mit einem Fehler beim Versuch einen Buffer zu dekomprimieren. Ich verwende dazu die Delphi beiliegende ZLib.pas.
Beim Ausführen von folgendem Code bekomme ich einen EDecompressionError mit der vielsagenden Aussage 'Error'.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Buffer, DecBuffer: array of Byte; ... SetLength(Buffer, ); SetLength(DecBuffer, ); ... DecompressToUserBuf(@Buffer[0], Length(Buffer), @DecBuffer[0], Length(DecBuffer)); |
Ein weiteres Problem liegt darin, dass dieser Fehler nur bei manchen Buffern auftritt. Ich kann einige ohne Probleme dekomprimieren, während ich bei anderen eben diesen Fehler habe. Die einzigen drei Veränderungen dabei sind jeweils die Daten im Buffer, die komprimierte Menge an Daten und die unkomprimierte Menge Daten.
Edit:
Mir ist aufgefallen, dass in den Fällen, in denen dieser Fehler auftritt, die Anzahl der dekomprimierten Bytes von der mir bekannten Anzahl abweicht. Beispiel: komprimierte Größe 73 Bytes, unkomprimierte Größe 540 Bytes, von DecompressBuf ausgegebene Bytes 593.
There are only 10 types of people: those who understand binary and those who don't.