Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Ascii85 Encoding and Decoding
See more Encryption Examples
Demonstrates ascii85 encoding and decoding.Note: Requires Chilkat v9.5.0.79 or greater.
Chilkat Pascal (Lazarus/Delphi) 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
success: Boolean;
sb: TStringBuilder;
encodedAscii85: string;
bd: TBinData;
begin
success := False;
// First demonstrate encoding strings to ascii85 and back.
sb := TStringBuilder.Create;
success := sb.Append('Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.');
encodedAscii85 := sb.GetEncoded('ascii85','utf-8');
WriteLn(encodedAscii85);
// Result is: 9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4 ... DII?(E,9)oF*2M7/c
// Decode back to the original:
sb.Clear();
sb.Append(encodedAscii85);
success := sb.Decode('ascii85','utf-8');
WriteLn('Original:');
WriteLn(sb.GetAsString());
// ---- Now encode binary data to ascii85 ----
bd := TBinData.Create;
success := bd.LoadFile('qa_data/jpg/starfish20.jpg');
encodedAscii85 := bd.GetEncoded('ascii85');
WriteLn(encodedAscii85);
// Result is: s4IA0!"_al8O`[\!<E0k!([(is8E!F7VQ[M+Eqj?FED)3+C]U=6"Fn ...
// Decode...
bd.Clear();
bd.AppendEncoded(encodedAscii85,'ascii85');
success := bd.WriteFile('qa_output/starfish20.jpg');
sb.Free;
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.