DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSbCompressedBase64
Handle hoCompress
Variant vBdCompressed
Handle hoBdCompressed
Variant vSbUncompressedChunk
Handle hoSbUncompressedChunk
Integer i
String sOriginalText
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(cComChilkatStringBuilder)) To hoSbCompressedBase64
If (Not(IsComObjectCreated(hoSbCompressedBase64))) Begin
Send CreateComObject of hoSbCompressedBase64
End
Get Create (RefClass(cComChilkatCompression)) To hoCompress
If (Not(IsComObjectCreated(hoCompress))) Begin
Send CreateComObject of hoCompress
End
Set ComAlgorithm Of hoCompress To "deflate"
Set ComCharset Of hoCompress To "utf-8"
Set ComEncodingMode Of hoCompress To "base64"
Set ComFirstChunk Of hoCompress To True
Set ComLastChunk Of hoCompress To False
Get Create (RefClass(cComChilkatBinData)) To hoBdCompressed
If (Not(IsComObjectCreated(hoBdCompressed))) Begin
Send CreateComObject of hoBdCompressed
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbUncompressedChunk
If (Not(IsComObjectCreated(hoSbUncompressedChunk))) Begin
Send CreateComObject of hoSbUncompressedChunk
End
For i From 0 To 24
If (i = 24) Begin
Set ComLastChunk Of hoCompress To True
End
Send ComClear To hoSbUncompressedChunk
Get ComAppendInt Of hoSbUncompressedChunk i To iSuccess
Get ComAppend Of hoSbUncompressedChunk ": This is a line of data to be compressed..." + (character(13)) + (character(10)) To iSuccess
Get pvComObject of hoSbUncompressedChunk to vSbUncompressedChunk
Get pvComObject of hoBdCompressed to vBdCompressed
Get ComCompressSb Of hoCompress vSbUncompressedChunk vBdCompressed To iSuccess
Set ComFirstChunk Of hoCompress To False
Loop
Showln "The base64 encoded compressed text:"
Get ComGetEncoded Of hoBdCompressed "base64" To sTemp1
Showln sTemp1
// Decompress in one call:
Get ComGetEncoded Of hoBdCompressed "base64" To sTemp1
Get ComDecompressStringENC Of hoCompress sTemp1 To sOriginalText
Showln sOriginalText
End_Procedure