Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Decompress a Base64-Encoded Gzip String

See more Gzip Examples

This example demonstrates how to use the UncompressStringENC method to decompress Gzip-compressed data that is provided as an encoded string.

The example first compresses a string and encodes the result as Base64. It then demonstrates how the Base64 string can be decoded and decompressed back into the original text.

Internally, the method performs three steps:

  1. The input string is decoded from the specified encoding (Base64 in this example) to obtain the compressed binary data.
  2. The binary data is decompressed using the Gzip algorithm.
  3. The resulting bytes are interpreted using the specified character set (UTF-8) to produce the final string.

This method is useful when working with compressed data embedded in text-based formats such as JSON, XML, or HTTP responses.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Gzip;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  gzip: TGzip;
  inputStr: string;
  compressedBase64: string;
  decompressed: string;

begin
  //  This example demonstrates how to decompress Gzip data that is
  //  provided as a Base64-encoded string.

  gzip := TGzip.Create;

  //  First, create a compressed Base64 string for demonstration purposes:
  inputStr := 'The quick brown fox jumps over the lazy dog.';
  gzip.Filename := 'quickBrownFox.txt';
  compressedBase64 := gzip.CompressStringENC(inputStr,'utf-8','base64');
  if (gzip.LastMethodSuccess = False) then
    begin
      WriteLn(gzip.LastErrorText);
      Exit;
    end;

  WriteLn('Compressed (Base64): ' + compressedBase64);

  //  Now decompress the Base64-encoded Gzip string:
  decompressed := gzip.UncompressStringENC(compressedBase64,'utf-8','base64');
  if (gzip.LastMethodSuccess = False) then
    begin
      WriteLn(gzip.LastErrorText);
      Exit;
    end;

  WriteLn('Decompressed string:');
  WriteLn(decompressed);


  gzip.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.