Delphi DLL
Delphi DLL
Decompress Gzip Data In-Place Using BinData
See more Gzip Examples
This example demonstrates how to use the UncompressBd method to decompress Gzip data stored in a BinData object.
The compressed .gz file is first loaded into memory. The UncompressBd method then decompresses the data in-place, meaning the original compressed bytes in the BinData object are replaced with the uncompressed data.
After decompression, the example writes the resulting data to a file. This approach is useful when working entirely in memory before saving or further processing the uncompressed data.
Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, BinData, Gzip;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
gzip: HCkGzip;
bd: HCkBinData;
begin
success := False;
// This example demonstrates how to decompress Gzip data stored in a BinData object.
// The decompression is done in-place, replacing the compressed data with the original data.
gzip := CkGzip_Create();
bd := CkBinData_Create();
// Load a .gz file into BinData:
success := CkBinData_LoadFile(bd,'example.txt.gz');
if (success = False) then
begin
Memo1.Lines.Add(CkBinData__lastErrorText(bd));
Exit;
end;
Memo1.Lines.Add('Compressed size (bytes): ' + IntToStr(CkBinData_getNumBytes(bd)));
// Uncompress the data in-place:
success := CkGzip_UncompressBd(gzip,bd);
if (success = False) then
begin
Memo1.Lines.Add(CkGzip__lastErrorText(gzip));
Exit;
end;
Memo1.Lines.Add('Decompressed size (bytes): ' + IntToStr(CkBinData_getNumBytes(bd)));
// Save the uncompressed data to a file:
success := CkBinData_WriteFile(bd,'example.txt');
if (success = False) then
begin
Memo1.Lines.Add(CkBinData__lastErrorText(bd));
Exit;
end;
Memo1.Lines.Add('File successfully uncompressed to example.txt');
CkGzip_Dispose(gzip);
CkBinData_Dispose(bd);
end;