Lianja
Lianja
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 Lianja Downloads
llSuccess = .F.
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loBdCompressed = createobject("CkBinData")
loCompress = createobject("CkCompression")
loCompress.Algorithm = "deflate"
loCompress.Charset = "utf-8"
loSbUncompressedChunk = createobject("CkStringBuilder")
loCompress.FirstChunk = .T.
loCompress.LastChunk = .F.
for i = 0 to 24
if (i = 24) then
loCompress.LastChunk = .T.
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 = .F.
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 = .T.
loBdDecompressed = createobject("CkBinData")
loCompress.FirstChunk = .T.
loCompress.LastChunk = .T.
llSuccess = loCompress.DecompressBd2(loBdCompressed,loBdDecompressed)
if (llSuccess = .F.) then
? loCompress.LastErrorText
release loBdCompressed
release loCompress
release loSbUncompressedChunk
release loBdDecompressed
return
endif
lcOriginalText = loBdDecompressed.GetString("utf-8")
? lcOriginalText
release loBdCompressed
release loCompress
release loSbUncompressedChunk
release loBdDecompressed