function CompressStrToBase64(sStr: string): string;
var
M1: TMemoryStream;
M0, M2: TStringStream;
begin
Result := '';
if sStr = '' then
Exit;
M0 := TStringStream.Create(sStr);
M1 := TMemoryStream.Create;
M2 := TStringStream.Create(' ');
try
M0.Position := 0;
M1.Position := 0;
ZCompressStream(M0, M1);
M1.Position := 0;
M2.Position := 0;
EncodeStream(M1, M2);
Result := M2.DataString;
finally
FreeAndNil(M0);
FreeAndNil(M1);
FreeAndNil(M2);
end;
end;
function DeCompressBase64ToStr(sStr: string): string;
var
M0, M1: TStringStream;
M2: TMemoryStream;
begin
Result := '';
if sStr = '' then
Exit;
M0 := TStringStream.Create('');
M1 := TStringStream.Create(sStr);
M2 := TMemoryStream.Create;
try
M1.Position := 0;
M2.Position := 0;
DeCodeStream(M1, M2);
M0.Position := 0;
M2.Position := 0;
ZDecompressStream(M2, M0);
Result := M0.DataString;
finally
FreeAndNil(M0);
FreeAndNil(M2);
FreeAndNil(M1);
end;
end;