Sample code for 30+ languages & platforms
Unicode C

Demonstrate Binary Data Encoding Methods

Demonstrates binary data encoding methods.

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

Chilkat Unicode C Downloads

Unicode C
#include <C_CkBinDataW.h>
#include <C_CkStringBuilderW.h>

void ChilkatSample(void)
    {
    HCkBinDataW binData;
    int offset;
    int numBytes;
    HCkStringBuilderW sb;

    binData = CkBinDataW_Create();

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

    //  Show that binData contains 10 bytes.
    wprintf(L"num bytes = %d\n",CkBinDataW_getNumBytes(binData));

    //  Get as base64
    wprintf(L"base64: %s\n",CkBinDataW_getEncoded(binData,L"base64"));

    //  Get a chunk of the binary data.
    //  The 1st byte is at index 0.
    //  The output should be "02030405"
    offset = 2;
    numBytes = 4;
    wprintf(L"chunk: %s\n",CkBinDataW_getEncodedChunk(binData,offset,numBytes,L"hex"));

    //  Copy the bytes to a StringBuilder using the base64url encoding
    sb = CkStringBuilderW_Create();
    CkBinDataW_GetEncodedSb(binData,L"base64url",sb);
    wprintf(L"base64url: %s\n",CkStringBuilderW_getAsString(sb));

    //  Remove a chunk from the binary data
    offset = 2;
    numBytes = 4;
    CkBinDataW_RemoveChunk(binData,offset,numBytes);
    //  The bytes remaining are 00,01,06,07,08,and 09
    wprintf(L"after removing chunk: %s\n",CkBinDataW_getEncoded(binData,L"hex"));


    CkBinDataW_Dispose(binData);
    CkStringBuilderW_Dispose(sb);

    }