Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Compress String Feed to Base64This example receives incoming text data in chunks, compresses as a stream, and accumulates the compressed data in base64. The purpose is to demonstrate the BeginCompressStringENC, MoreCompressStringENC, and EndCompressStringENC methods.
IncludeFile "CkStringBuilder.pb" IncludeFile "CkCompression.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. success.i sbCompressedBase64.i = CkStringBuilder::ckCreate() If sbCompressedBase64.i = 0 Debug "Failed to create object." ProcedureReturn EndIf compress.i = CkCompression::ckCreate() If compress.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkCompression::setCkAlgorithm(compress, "deflate") CkCompression::setCkCharset(compress, "utf-8") CkCompression::setCkEncodingMode(compress, "base64") sbIndex.i = CkStringBuilder::ckCreate() If sbIndex.i = 0 Debug "Failed to create object." ProcedureReturn EndIf i.i For i = 0 To 24 ; Note: It is possible (and normal) for a BeginCompress* or MoreCompress* method to return ; an empty string (or 0 bytes). When this happens, the input data is not lost. It will be flushed ; in a subsequent call. CkStringBuilder::ckClear(sbIndex) CkStringBuilder::ckAppendInt(sbIndex,i) If i = 0 CkStringBuilder::ckAppend(sbCompressedBase64,CkCompression::ckBeginCompressStringENC(compress,CkStringBuilder::ckGetAsString(sbIndex))) Else CkStringBuilder::ckAppend(sbCompressedBase64,CkCompression::ckMoreCompressStringENC(compress,CkStringBuilder::ckGetAsString(sbIndex))) EndIf CkStringBuilder::ckAppend(sbCompressedBase64,CkCompression::ckMoreCompressStringENC(compress,": This is a line of data to be compressed..." + Chr(13) + Chr(10))) Next ; Flush any remaining output. CkStringBuilder::ckAppend(sbCompressedBase64,CkCompression::ckEndCompressStringENC(compress)) Debug "The base64 encoded compressed text:" Debug CkStringBuilder::ckGetAsString(sbCompressedBase64) ; Now decompress in one call: originalText.s = CkCompression::ckDecompressStringENC(compress,CkStringBuilder::ckGetAsString(sbCompressedBase64)) Debug originalText CkStringBuilder::ckDispose(sbCompressedBase64) CkCompression::ckDispose(compress) CkStringBuilder::ckDispose(sbIndex) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.