Lazarus Pascal
Lazarus Pascal
Append Big-Endian or Little-Endian Integers
Demonstrates how to append integers in big-endian or little-endian byte order to a BinData.Note: This example requires Chilkat v9.5.0.77 or greater.
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;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
bd: TBinData;
x: Integer;
littleEndian: Boolean;
begin
success := False;
bd := TBinData.Create;
// The hex value of decimal 123456789 is 0x075BCD15
x := 123456789;
// Appending little-endian causes bytes to be
// appended in the order 0x15, 0xCD, 0x5B, 0x07
littleEndian := True;
success := bd.AppendInt4(x,littleEndian);
WriteLn(bd.GetEncoded('hex'));
// Output is: 15CD5B07
// Now append the same integer in big-endian byte order.
// Appending bit-endian causes bytes to be
// appended in the order 0x07, 0x5B, 0xCD, 0x15
littleEndian := False;
bd.AppendInt4(x,littleEndian);
WriteLn(bd.GetEncoded('hex'));
// bd now contains: 15CD5B07075BCD15
// -------------------------------------------
// Now do the same thing with 16-bit integers
bd.Clear();
// 1234 decimal = 0x04D2 hex.
x := 1234;
littleEndian := True;
bd.AppendInt2(x,littleEndian);
WriteLn(bd.GetEncoded('hex'));
// Output is: D204
littleEndian := False;
bd.AppendInt2(x,littleEndian);
WriteLn(bd.GetEncoded('hex'));
// Output is now: D20404D2
bd.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.