Sample code for 30+ languages & platforms
DataFlex

Gzip Compress In Memory and Base64 Encode

See more Gzip Examples

Demonstrates how to Gzip compress in-memory data and then encode the compressed data to base64.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoGzip
    Variant vFileData
    Handle hoFileData
    String sStrBase64
    String sStrBase64MultiLine
    String sTemp1

    Move False To iSuccess

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatGzip)) To hoGzip
    If (Not(IsComObjectCreated(hoGzip))) Begin
        Send CreateComObject of hoGzip
    End

    // This example will load a file into the fileData object.
    // Your application might load fileData from other sources..
    Get Create (RefClass(cComChilkatBinData)) To hoFileData
    If (Not(IsComObjectCreated(hoFileData))) Begin
        Send CreateComObject of hoFileData
    End
    Get ComLoadFile Of hoFileData "qa_data/xml/hamlet.xml" To iSuccess
    If (iSuccess <> True) Begin
        Showln "Failed to load file."
        Procedure_Return
    End

    // In-place compress the contents of fileData
    Get pvComObject of hoFileData to vFileData
    Get ComCompressBd Of hoGzip vFileData To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoGzip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Get the base64 encoded compressed data (in a single line).
    Get ComGetEncoded Of hoFileData "base64" To sStrBase64
    Showln sStrBase64
    Showln "--------"

    // To get the base64 in multiple lines, as it might appear in MIME,
    // use "base64-mime".
    Get ComGetEncoded Of hoFileData "base64-mime" To sStrBase64MultiLine
    Showln sStrBase64MultiLine


End_Procedure