Sample code for 30+ languages & platforms
PureBasic

Decompress Gzip Data from BinData Directly to a File

See more Gzip Examples

This example demonstrates how to use the UncompressBdToFile method to decompress Gzip data stored in a BinData object and write the uncompressed output directly to a file.

The compressed .gz data is first loaded into memory using a BinData object. The UncompressBdToFile method then decompresses the data and writes the result directly to the specified file, without modifying the contents of the BinData object.

This approach is useful when you want to extract compressed data to disk without performing an in-place transformation or managing intermediate buffers.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkGzip.pb"
IncludeFile "CkBinData.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example demonstrates how to decompress Gzip data stored in a BinData object
    ; and write the uncompressed output directly to a file.

    gzip.i = CkGzip::ckCreate()
    If gzip.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    bd.i = CkBinData::ckCreate()
    If bd.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Load a .gz file into BinData:
    success = CkBinData::ckLoadFile(bd,"example.txt.gz")
    If success = 0
        Debug CkBinData::ckLastErrorText(bd)
        CkGzip::ckDispose(gzip)
        CkBinData::ckDispose(bd)
        ProcedureReturn
    EndIf

    Debug "Loaded Gzip data into memory."

    ; Uncompress the Gzip data and write directly to a file:
    success = CkGzip::ckUncompressBdToFile(gzip,bd,"example.txt")
    If success = 0
        Debug CkGzip::ckLastErrorText(gzip)
        CkGzip::ckDispose(gzip)
        CkBinData::ckDispose(bd)
        ProcedureReturn
    EndIf

    Debug "File successfully uncompressed to example.txt"


    CkGzip::ckDispose(gzip)
    CkBinData::ckDispose(bd)


    ProcedureReturn
EndProcedure