Sample code for 30+ languages & platforms
Delphi DLL

Ascii85 Encoding and Decoding

See more Encryption Examples

Demonstrates ascii85 encoding and decoding.

Note: Requires Chilkat v9.5.0.79 or greater.

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
success: Boolean;
sb: HCkStringBuilder;
encodedAscii85: PWideChar;
bd: HCkBinData;

begin
success := False;

// First demonstrate encoding strings to ascii85 and back.
sb := CkStringBuilder_Create();

success := CkStringBuilder_Append(sb,'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 := CkStringBuilder__getEncoded(sb,'ascii85','utf-8');
Memo1.Lines.Add(encodedAscii85);

// Result is: 9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4 ... DII?(E,9)oF*2M7/c

// Decode back to the original:
CkStringBuilder_Clear(sb);
CkStringBuilder_Append(sb,encodedAscii85);
success := CkStringBuilder_Decode(sb,'ascii85','utf-8');
Memo1.Lines.Add('Original:');
Memo1.Lines.Add(CkStringBuilder__getAsString(sb));

// ---- Now encode binary data to ascii85 ----
bd := CkBinData_Create();
success := CkBinData_LoadFile(bd,'qa_data/jpg/starfish20.jpg');
encodedAscii85 := CkBinData__getEncoded(bd,'ascii85');
Memo1.Lines.Add(encodedAscii85);

// Result is:  s4IA0!"_al8O`[\!<E0k!([(is8E!F7VQ[M+Eqj?FED)3+C]U=6"Fn ...

// Decode...
CkBinData_Clear(bd);
CkBinData_AppendEncoded(bd,encodedAscii85,'ascii85');
success := CkBinData_WriteFile(bd,'qa_output/starfish20.jpg');

CkStringBuilder_Dispose(sb);
CkBinData_Dispose(bd);

end;