Sample code for 30+ languages & platforms
PureBasic

Demonstrate Binary Data Encoding Methods

Demonstrates binary data encoding methods.

Note: This example requires Chilkat v9.5.0.64 or later.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkBinData.pb"
IncludeFile "CkStringBuilder.pb"

Procedure ChilkatExample()

    binData.i = CkBinData::ckCreate()
    If binData.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Append 10 bytes: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09
    CkBinData::ckAppendEncoded(binData,"00010203040506070809","hex")

    ; Show that binData contains 10 bytes.
    Debug "num bytes = " + Str(CkBinData::ckNumBytes(binData))

    ; Get as base64
    Debug "base64: " + CkBinData::ckGetEncoded(binData,"base64")

    ; Get a chunk of the binary data.
    ; The 1st byte is at index 0.
    ; The output should be "02030405"
    offset.i = 2
    numBytes.i = 4
    Debug "chunk: " + CkBinData::ckGetEncodedChunk(binData,offset,numBytes,"hex")

    ; Copy the bytes to a StringBuilder using the base64url encoding
    sb.i = CkStringBuilder::ckCreate()
    If sb.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkBinData::ckGetEncodedSb(binData,"base64url",sb)
    Debug "base64url: " + CkStringBuilder::ckGetAsString(sb)

    ; Remove a chunk from the binary data
    offset = 2
    numBytes = 4
    CkBinData::ckRemoveChunk(binData,offset,numBytes)
    ; The bytes remaining are 00,01,06,07,08,and 09
    Debug "after removing chunk: " + CkBinData::ckGetEncoded(binData,"hex")


    CkBinData::ckDispose(binData)
    CkStringBuilder::ckDispose(sb)


    ProcedureReturn
EndProcedure