Objective-C
Objective-C
Compress Text Feed to Binary
See more Compression Examples
This example receives incoming text data in chunks, compresses as a stream, and accumulates the compressed binary data.Chilkat Objective-C Downloads
#import <CkoBinData.h>
#import <CkoCompression.h>
#import <CkoStringBuilder.h>
#import <NSString.h>
BOOL success = NO;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoBinData *bdCompressed = [[CkoBinData alloc] init];
CkoCompression *compress = [[CkoCompression alloc] init];
compress.Algorithm = @"deflate";
compress.Charset = @"utf-8";
CkoStringBuilder *sbUncompressedChunk = [[CkoStringBuilder alloc] init];
compress.FirstChunk = YES;
compress.LastChunk = NO;
int i;
for (i = 0; i <= 24; i++) {
if (i == 24) {
compress.LastChunk = YES;
}
[sbUncompressedChunk Clear];
[sbUncompressedChunk AppendInt: [NSNumber numberWithInt: i]];
[sbUncompressedChunk Append: @": This is a line of data to be compressed...\r\n"];
[compress CompressSb: sbUncompressedChunk binData: bdCompressed];
compress.FirstChunk = NO;
}
// Show the compressed data in hex format:
NSLog(@"%@",@"The hex encoded compressed text:");
NSLog(@"%@",[bdCompressed GetEncoded: @"hex"]);
// Now decompress in one call. It is important to set both FirstChunk and LastChunk = YES
CkoBinData *bdDecompressed = [[CkoBinData alloc] init];
compress.FirstChunk = YES;
compress.LastChunk = YES;
success = [compress DecompressBd2: bdCompressed bdOut: bdDecompressed];
if (success == NO) {
NSLog(@"%@",compress.LastErrorText);
return;
}
NSString *originalText = [bdDecompressed GetString: @"utf-8"];
NSLog(@"%@",originalText);