Swift
Swift
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 Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let bdCompressed = CkoBinData()!
let compress = CkoCompression()!
compress.algorithm = "deflate"
compress.charset = "utf-8"
let sbUncompressedChunk = CkoStringBuilder()!
compress.firstChunk = true
compress.lastChunk = false
var i: Int
for i = 0; i <= 24; i++ {
if i == 24 {
compress.lastChunk = true
}
sbUncompressedChunk.clear()
sbUncompressedChunk.appendInt(value: i)
sbUncompressedChunk.append(value: ": This is a line of data to be compressed...\r\n")
compress.compressSb(sb: sbUncompressedChunk, binData: bdCompressed)
compress.firstChunk = false
}
// Show the compressed data in hex format:
print("The hex encoded compressed text:")
print("\(bdCompressed.getEncoded(encoding: "hex")!)")
// Now decompress in one call. It is important to set both FirstChunk and LastChunk = true
let bdDecompressed = CkoBinData()!
compress.firstChunk = true
compress.lastChunk = true
success = compress.decompressBd2(bdIn: bdCompressed, bdOut: bdDecompressed)
if success == false {
print("\(compress.lastErrorText!)")
return
}
var originalText: String? = bdDecompressed.getString(charset: "utf-8")
print("\(originalText!)")
}