Unicode C
Unicode C
Compress and Decompress a String
See more Compression Examples
Demonstrates how to compress and decompress a string.Chilkat Unicode C Downloads
#include <C_CkStringBuilderW.h>
#include <C_CkCompressionW.h>
#include <C_CkByteData.h>
void ChilkatSample(void)
{
BOOL success;
HCkStringBuilderW sb;
int i;
HCkCompressionW compress;
HCkByteData compressedBytes;
const wchar_t *compressedBase64;
const wchar_t *decompressedString;
success = FALSE;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
sb = CkStringBuilderW_Create();
for (i = 1; i <= 20; i++) {
CkStringBuilderW_Append(sb,L"This is the original uncompressed string.\r\n");
}
compress = CkCompressionW_Create();
CkCompressionW_putAlgorithm(compress,L"deflate");
// Indicate that the utf-8 byte representation of the string should be compressed.
CkCompressionW_putCharset(compress,L"utf-8");
compressedBytes = CkByteData_Create();
success = CkCompressionW_CompressString(compress,CkStringBuilderW_getAsString(sb),compressedBytes);
// If the compressed data is desired in string format, then get the base64 representation of the bytes.
CkCompressionW_putEncodingMode(compress,L"base64");
compressedBase64 = CkCompressionW_compressStringENC(compress,CkStringBuilderW_getAsString(sb));
wprintf(L"Compressed Bytes as Base64: %s\n",compressedBase64);
// Now decompress...
decompressedString = CkCompressionW_decompressString(compress,compressedBytes);
wprintf(L"The original string after decompressing from binary compressed data:\n");
wprintf(L"%s\n",decompressedString);
// To decompress from Base64...
CkCompressionW_putEncodingMode(compress,L"base64");
decompressedString = CkCompressionW_decompressStringENC(compress,compressedBase64);
wprintf(L"The original string after decompressing from Base64:\n");
wprintf(L"%s\n",decompressedString);
CkStringBuilderW_Dispose(sb);
CkCompressionW_Dispose(compress);
CkByteData_Dispose(compressedBytes);
}