Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

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

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

    ; This example will load a file into the fileData object.
    ; Your application might load fileData from other sources..
    fileData.i = CkBinData::ckCreate()
    If fileData.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkBinData::ckLoadFile(fileData,"qa_data/xml/hamlet.xml")
    If success <> 1
        Debug "Failed to load file."
        CkGzip::ckDispose(gzip)
        CkBinData::ckDispose(fileData)
        ProcedureReturn
    EndIf

    ; In-place compress the contents of fileData
    success = CkGzip::ckCompressBd(gzip,fileData)
    If success <> 1
        Debug CkGzip::ckLastErrorText(gzip)
        CkGzip::ckDispose(gzip)
        CkBinData::ckDispose(fileData)
        ProcedureReturn
    EndIf

    ; Get the base64 encoded compressed data (in a single line).
    strBase64.s = CkBinData::ckGetEncoded(fileData,"base64")
    Debug strBase64
    Debug "--------"

    ; To get the base64 in multiple lines, as it might appear in MIME,
    ; use "base64-mime".
    strBase64MultiLine.s = CkBinData::ckGetEncoded(fileData,"base64-mime")
    Debug strBase64MultiLine


    CkGzip::ckDispose(gzip)
    CkBinData::ckDispose(fileData)


    ProcedureReturn
EndProcedure