Sample code for 30+ languages & platforms
Visual FoxPro

Compress Text Feed to Binary

See more Compression Examples

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

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loBdCompressed
LOCAL loCompress
LOCAL loSbUncompressedChunk
LOCAL i
LOCAL loBdDecompressed
LOCAL lcOriginalText

lnSuccess = 0

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

loBdCompressed = CreateObject('Chilkat.BinData')

loCompress = CreateObject('Chilkat.Compression')
loCompress.Algorithm = "deflate"
loCompress.Charset = "utf-8"

loSbUncompressedChunk = CreateObject('Chilkat.StringBuilder')

loCompress.FirstChunk = 1
loCompress.LastChunk = 0

FOR i = 0 TO 24
    IF (i = 24) THEN
        loCompress.LastChunk = 1
    ENDIF

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

    loCompress.CompressSb(loSbUncompressedChunk,loBdCompressed)

    loCompress.FirstChunk = 0
NEXT

* Show the compressed data in hex format:
? "The hex encoded compressed text:"
? loBdCompressed.GetEncoded("hex")

* Now decompress in one call.  It is important to set both FirstChunk and LastChunk = 1
loBdDecompressed = CreateObject('Chilkat.BinData')
loCompress.FirstChunk = 1
loCompress.LastChunk = 1
lnSuccess = loCompress.DecompressBd2(loBdCompressed,loBdDecompressed)
IF (lnSuccess = 0) THEN
    ? loCompress.LastErrorText
    RELEASE loBdCompressed
    RELEASE loCompress
    RELEASE loSbUncompressedChunk
    RELEASE loBdDecompressed
    CANCEL
ENDIF

lcOriginalText = loBdDecompressed.GetString("utf-8")
? lcOriginalText

RELEASE loBdCompressed
RELEASE loCompress
RELEASE loSbUncompressedChunk
RELEASE loBdDecompressed