Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

UN/EDIFACT Syntax Level A Encoding/Decoding

See more Encryption Examples

Demonstrates the new "eda" encoding that can be used throughout Chilkat starting in v9.5.0.65.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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.Crypt2,
  Chilkat.StringBuilder;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  sb: TStringBuilder;
  crypt: TCrypt2;
  ivHex: string;
  keyHex: string;
  encStr: string;
  decStr: string;

begin
  //  Note: Requires Chilkat v9.5.0.65 or greater.

  sb := TStringBuilder.Create;
  sb.Append('The 5 men of 223rd St');
  WriteLn(sb.GetAsString());

  //  Encode the utf-8 byte representation of the string in the 
  //  UN/EDIFACT syntax level A character set.
  sb.Encode('eda','utf-8');
  WriteLn(sb.GetAsString());

  //  EDA Output should be: BTME027FCF6CFARFI94JT6.)F(14KJ2U

  //  Decode back to the original string.
  sb.Decode('eda','utf-8');
  WriteLn(sb.GetAsString());
  WriteLn('----');

  //  The following requires the Chilkat API to have been previously unlocked.
  //  See Global Unlock Sample for sample code.

  //  The "eda" encoding can be used anywhere within Chilkat.
  //  For example, with the Crypt2 API
  crypt := TCrypt2.Create;
  crypt.CryptAlgorithm := 'aes';
  crypt.CipherMode := 'cbc';
  crypt.KeyLength := 256;
  crypt.EncodingMode := 'eda';

  ivHex := '000102030405060708090A0B0C0D0E0F';
  crypt.SetEncodedIV(ivHex,'hex');
  keyHex := '000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F';
  crypt.SetEncodedKey(keyHex,'hex');

  encStr := crypt.EncryptStringENC('The quick brown fox jumps over the lazy dog.');
  //  The output is UN/EDIFACT syntax level A 
  WriteLn(encStr);

  //  Now decrypt:
  decStr := crypt.DecryptStringENC(encStr);
  WriteLn(decStr);


  sb.Free;
  crypt.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.