Unicode C
Unicode C
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 Unicode C Downloads
#include <C_CkStringBuilderW.h>
#include <C_CkCompressionW.h>
#include <C_CkBinDataW.h>
void ChilkatSample(void)
{
BOOL success;
HCkStringBuilderW sbCompressedBase64;
HCkCompressionW compress;
HCkBinDataW bdCompressed;
HCkStringBuilderW sbUncompressedChunk;
int i;
const wchar_t *originalText;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
sbCompressedBase64 = CkStringBuilderW_Create();
compress = CkCompressionW_Create();
CkCompressionW_putAlgorithm(compress,L"deflate");
CkCompressionW_putCharset(compress,L"utf-8");
CkCompressionW_putEncodingMode(compress,L"base64");
CkCompressionW_putFirstChunk(compress,TRUE);
CkCompressionW_putLastChunk(compress,FALSE);
bdCompressed = CkBinDataW_Create();
sbUncompressedChunk = CkStringBuilderW_Create();
for (i = 0; i <= 24; i++) {
if (i == 24) {
CkCompressionW_putLastChunk(compress,TRUE);
}
CkStringBuilderW_Clear(sbUncompressedChunk);
CkStringBuilderW_AppendInt(sbUncompressedChunk,i);
CkStringBuilderW_Append(sbUncompressedChunk,L": This is a line of data to be compressed...\r\n");
CkCompressionW_CompressSb(compress,sbUncompressedChunk,bdCompressed);
CkCompressionW_putFirstChunk(compress,FALSE);
}
wprintf(L"The base64 encoded compressed text:\n");
wprintf(L"%s\n",CkBinDataW_getEncoded(bdCompressed,L"base64"));
// Decompress in one call:
originalText = CkCompressionW_decompressStringENC(compress,CkBinDataW_getEncoded(bdCompressed,L"base64"));
wprintf(L"%s\n",originalText);
CkStringBuilderW_Dispose(sbCompressedBase64);
CkCompressionW_Dispose(compress);
CkBinDataW_Dispose(bdCompressed);
CkStringBuilderW_Dispose(sbUncompressedChunk);
}