Sample code for 30+ languages & platforms
Delphi DLL

Demonstrate Binary Data Encoding Methods

Demonstrates binary data encoding methods.

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

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, BinData, StringBuilder;

...

procedure TForm1.Button1Click(Sender: TObject);
var
binData: HCkBinData;
offset: Integer;
numBytes: Integer;
sb: HCkStringBuilder;

begin
binData := CkBinData_Create();

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

// Show that binData contains 10 bytes.
Memo1.Lines.Add('num bytes = ' + IntToStr(CkBinData_getNumBytes(binData)));

// Get as base64
Memo1.Lines.Add('base64: ' + CkBinData__getEncoded(binData,'base64'));

// Get a chunk of the binary data.
// The 1st byte is at index 0.
// The output should be "02030405"
offset := 2;
numBytes := 4;
Memo1.Lines.Add('chunk: ' + CkBinData__getEncodedChunk(binData,offset,numBytes,'hex'));

// Copy the bytes to a StringBuilder using the base64url encoding
sb := CkStringBuilder_Create();
CkBinData_GetEncodedSb(binData,'base64url',sb);
Memo1.Lines.Add('base64url: ' + CkStringBuilder__getAsString(sb));

// Remove a chunk from the binary data
offset := 2;
numBytes := 4;
CkBinData_RemoveChunk(binData,offset,numBytes);
// The bytes remaining are 00,01,06,07,08,and 09
Memo1.Lines.Add('after removing chunk: ' + CkBinData__getEncoded(binData,'hex'));

CkBinData_Dispose(binData);
CkStringBuilder_Dispose(sb);

end;