Lazarus Pascal
Lazarus Pascal
Demonstrate Binary Data Encoding Methods
Demonstrates binary data encoding methods.Note: This example requires Chilkat v9.5.0.64 or later.
Chilkat Lazarus Pascal Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.BinData,
Chilkat.StringBuilder;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
binData: TBinData;
offset: Integer;
numBytes: Integer;
sb: TStringBuilder;
begin
binData := TBinData.Create;
// Append 10 bytes: 00, 01, 02, 03, 04, 05, 06, 07, 08, 09
binData.AppendEncoded('00010203040506070809','hex');
// Show that binData contains 10 bytes.
WriteLn('num bytes = ' + binData.NumBytes);
// Get as base64
WriteLn('base64: ' + binData.GetEncoded('base64'));
// Get a chunk of the binary data.
// The 1st byte is at index 0.
// The output should be "02030405"
offset := 2;
numBytes := 4;
WriteLn('chunk: ' + binData.GetEncodedChunk(offset,numBytes,'hex'));
// Copy the bytes to a StringBuilder using the base64url encoding
sb := TStringBuilder.Create;
binData.GetEncodedSb('base64url',sb);
WriteLn('base64url: ' + sb.GetAsString());
// Remove a chunk from the binary data
offset := 2;
numBytes := 4;
binData.RemoveChunk(offset,numBytes);
// The bytes remaining are 00,01,06,07,08,and 09
WriteLn('after removing chunk: ' + binData.GetEncoded('hex'));
binData.Free;
sb.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.