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 <CkStringBuilderW.h>
#include <CkCompressionW.h>
#include <CkByteData.h>
void ChilkatSample(void)
{
bool success = false;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkStringBuilderW sb;
int i;
for (i = 1; i <= 20; i++) {
sb.Append(L"This is the original uncompressed string.\r\n");
}
CkCompressionW compress;
compress.put_Algorithm(L"deflate");
// Indicate that the utf-8 byte representation of the string should be compressed.
compress.put_Charset(L"utf-8");
CkByteData compressedBytes;
success = compress.CompressString(sb.getAsString(),compressedBytes);
// If the compressed data is desired in string format, then get the base64 representation of the bytes.
compress.put_EncodingMode(L"base64");
const wchar_t *compressedBase64 = compress.compressStringENC(sb.getAsString());
wprintf(L"Compressed Bytes as Base64: %s\n",compressedBase64);
// Now decompress...
const wchar_t *decompressedString = compress.decompressString(compressedBytes);
wprintf(L"The original string after decompressing from binary compressed data:\n");
wprintf(L"%s\n",decompressedString);
// To decompress from Base64...
compress.put_EncodingMode(L"base64");
decompressedString = compress.decompressStringENC(compressedBase64);
wprintf(L"The original string after decompressing from Base64:\n");
wprintf(L"%s\n",decompressedString);
}