DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoGzip
Variant vBd
Handle hoBd
String sTemp1
Integer iTemp1
Move False To iSuccess
// 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.
Get Create (RefClass(cComChilkatGzip)) To hoGzip
If (Not(IsComObjectCreated(hoGzip))) Begin
Send CreateComObject of hoGzip
End
Get Create (RefClass(cComChilkatBinData)) To hoBd
If (Not(IsComObjectCreated(hoBd))) Begin
Send CreateComObject of hoBd
End
// Load a .gz file into BinData:
Get ComLoadFile Of hoBd "example.txt.gz" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoBd To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComNumBytes Of hoBd To iTemp1
Showln "Compressed size (bytes): " iTemp1
// Uncompress the data in-place:
Get pvComObject of hoBd to vBd
Get ComUncompressBd Of hoGzip vBd To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoGzip To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComNumBytes Of hoBd To iTemp1
Showln "Decompressed size (bytes): " iTemp1
// Save the uncompressed data to a file:
Get ComWriteFile Of hoBd "example.txt" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoBd To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "File successfully uncompressed to example.txt"
End_Procedure