Bearbeite deinen Instream
nach dem Laden mal so:
Delphi-Quellcode:
var
AByteArray : PByteArray;
i : Integer;
begin
// gz header/footer replacement
AByteArray := InStream.Memory;
i := 10;
while AByteArray[i] <> 0 do
inc(i);
AByteArray[i - 1] := $78;
AByteArray[i] := $9C;
InStream.Position := i - 1;
InStream.Size := InStream.Size -8;
- Sucht das Header Ende (10 Byte Header + #0 terminated Filename)
- Setzt den Delphi 2 Byte Header
- Size -8 um 32bit CRC abzuschneiden
- Position auf Anfang des neuen Header
Bei mir geht es so. Mit einem kleinen Textfile (als gz via 7zip). Ist natürlich nicht fehlertolerant, nur zum Testen.
PS: Ich verwende TDecompressionStream etwas anders, ich hoffe Deine Variante ignoriert nicht InStream.Position.