Abgesehen von ein paar überflüssigen Statements funktioniert der Code, aber statistische Komprimierung verkehrt sich bei zu kleinen Datenmengen leicht ins Gegenteil. Ich nehme an, dass du keine konkrete Anwendung im Sinn hast und mehr die Funktionalität der Library ausloten willst.
Delphi-Quellcode:
function CompressString(input: string): string;
var
OutBuf: Pointer;
OutBytes: Integer;
begin
try
CompressBuf(@Input[1], Length(input), OutBuf, OutBytes);
SetLength(result, OutBytes);
Move(OutBuf^, result[1], OutBytes);
finally
if OutBuf <> nil then FreeMem(OutBuf);
end;
end;
function DeCompressString(input: string): string;
var
OutBuf: Pointer;
OutBytes: Integer;
begin
try
DeCompressBuf(@Input[1], Length(input), 0, OutBuf, OutBytes);
SetLength(result, OutBytes);
Move(OutBuf^, result[1], OutBytes);
finally
if OutBuf <> nil then FreeMem(OutBuf);
end;
end;
Grüße vom marabu