// Here is a Little Snippet showing Usage for Base32 Operations.
uses
SysUtils, uBase32;
procedure TForm1.Button1Click(Sender: TObject);
var
B32: IBase32;
EncodedString, DecodedString, BaseAlphabet: {$IFDEF FPC} UnicodeString {$ELSE} String {$ENDIF};
DecodedArray: TBytes;
BaseSpecial: {$IFDEF FPC} UnicodeChar {$ELSE} Char {$ENDIF};
begin
// Creates a Base32 Instance with Default Values. You can Specify your Desired
// Parameters During Creation of the Instance.
B32 := TBase32.Create();
// Accepts a String and Encodes it Internally using UTF8 as the Default Encoding
EncodedString := B32.EncodeString('TestValue');
// Accepts an Encoded String and Decodes it Internally using UTF8 as the Default Encoding
DecodedString := B32.DecodeToString(EncodedString);
// Accepts a Byte Array and Encodes it.
EncodedString := B32.Encode(TEncoding.ANSI.GetBytes('TestValue'));
// Accepts an Encoded String and Decodes it. (Returns a Byte Array)
DecodedArray := B32.Decode(EncodedString);
// Property that allows you to modifies The Encoding of the Created Instance.
B32.Encoding := TEncoding.Unicode;
// Property that allows you to get The Base Alphabets used to perform the Encoding.
BaseAlphabet := B32.Alphabet;
// Property that allows you to get The Base Char (Padder) used to perform the Encoding.
BaseSpecial := B32.Special;
// There are some other important properties but those are left for you to figure out. :)
// Also no need to "Free" the Created Instance Since it is Reference Counted.
end;