Sample code for 30+ languages & platforms
Xbase++ Requires Chilkat v11.0.0+

Compress String Feed to Base64

See more Compression Examples

This example receives incoming text data in chunks, compresses as a stream, and accumulates the compressed data in base64.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oSbCompressedBase64
LOCAL oCompress
LOCAL oBdCompressed
LOCAL oSbUncompressedChunk
LOCAL i
LOCAL cOriginalText

nSuccess := 0

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

oSbCompressedBase64 := CreateObject("Chilkat.StringBuilder")

oCompress := CreateObject("Chilkat.Compression")
oCompress:Algorithm := "deflate"
oCompress:Charset := "utf-8"
oCompress:EncodingMode := "base64"

oCompress:FirstChunk := 1
oCompress:LastChunk := 0

oBdCompressed := CreateObject("Chilkat.BinData")
oSbUncompressedChunk := CreateObject("Chilkat.StringBuilder")

FOR i := 0 TO 24
    IF (i == 24)
        oCompress:LastChunk := 1
    ENDIF

    oSbUncompressedChunk:Clear()
    oSbUncompressedChunk:AppendInt(i)
    oSbUncompressedChunk:Append(": This is a line of data to be compressed..." + Chr(13) + Chr(10))

    oCompress:CompressSb(oSbUncompressedChunk, oBdCompressed)

    oCompress:FirstChunk := 0
NEXT

? "The base64 encoded compressed text:"
? oBdCompressed:GetEncoded("base64")

//  Decompress in one call:
cOriginalText := oCompress:DecompressStringENC(oBdCompressed:GetEncoded("base64"))
? cOriginalText

oSbCompressedBase64:destroy()
oCompress:destroy()
oBdCompressed:destroy()
oSbUncompressedChunk:destroy()