In delphi 2006 hatte ich folgenden Methoden Zlib zum Komprimieren und Dekomprimieren (von Delphi 2006)
procedure CompressStream(inpStream, outStream: TStream);
var
InpBuf, OutBuf: Pointer;
InpBytes, OutBytes: Integer;
begin
InpBuf := nil;
OutBuf := nil;
try
GetMem(InpBuf, inpStream.Size);
inpStream.Position := 0;
InpBytes := inpStream.Read(InpBuf^, inpStream.Size);
CompressBuf(InpBuf, InpBytes, OutBuf, OutBytes);
outStream.Write(OutBuf^, OutBytes);
finally
if InpBuf <> nil then FreeMem(InpBuf);
if OutBuf <> nil then FreeMem(OutBuf);
end;
end;
{ Decompress a stream }
procedure DecompressStream(inpStream, outStream: TStream);
var
InpBuf, OutBuf: Pointer;
OutBytes, sz: Integer;
begin
InpBuf := nil;
OutBuf := nil;
sz := inpStream.Size - inpStream.Position;
if sz > 0 then
try
GetMem(InpBuf, sz);
inpStream.Read(InpBuf^, sz);
DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes);
outStream.Write(OutBuf^, OutBytes);
finally
if InpBuf <> nil then FreeMem(InpBuf);
if OutBuf <> nil then FreeMem(OutBuf);
end;
outStream.Position := 0;
end;
Was soll ich für diese ändern in Delphi 2009 zu arbeiten?
es würde helfen, wenn Sie die Fehler und vielleicht etwas Code gepostet? – Cheeso
In der Tat müssen Sie uns sagen, welche genauen Fehler Sie erhalten und welche Funktion Sie angerufen haben, als Sie sie bekommen haben. –
Ich nehme an, dass FastZlib PChar anstelle von PAnsiChar verwendet. In Delphi 2009 SizeOf (Char) = 2 und nicht 1 Byte wie in Delphi 2006. –