Sample code for 30+ languages & platforms
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

Swift

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!)")

}