BASE64 (FUN)

FUNCTION BASE64 : PT_SIZE

Kodiert 8 Bit-Binärdaten in ASCII-Daten

Ein Textblock (String, Binärformat, Byte-Array) wird mit Base64-kodiert. Das Maximum des Blocks ist im Parameter TextBlockSize gesetzt. Die Größe kann geändert werden, muss jedoch durch 3 teilbar sein.

Wenn der Textblock nur ein Teil eines Texts ist, gefolgt von weiterem Text, muss die Größe TextBlockSize.iBlockSize sein und die Variable isLastBlock muss auf FALSE gesetzt werden. Wenn ein Text nicht von einem anderen Textblock gefolgt wird, muss seine spezifische Länge verwendet werden und isLastBlock muss auf TRUE gesetzt werden,wie im folgenden Beispiel dargestellt. Der Grund ist, dass drei 8-Bit-Zeichen zu 4 6-Bit-Zeichen werden. Wenn nur zwei 8-Bit-Zeichen am Ende übrig bleiben, wird der kodierte Text mit „=“ gefüllt. Dies darf nur am Ende des Texts sein.

Beispiel:

StringToConvert : PT_SIZE;
EncodedString  : PT_SIZE;
byError        : BYTE;
sText          : STRING := 'This is a test string.';

StringToConvert.uiSize := LEN(sText); (* When another block follows, use the size TextBlockSize.iBlockSize
                                      and set isLastBlock to FALSE. *)
StringToConvert.pString := ADR(sText);
EncodedString := Base64(TextToEncode := StringToConvert, isLastBlock := TRUE, pbyError := ADR(byError));
Ein-/Ausgänge:

Gültigkeitsbereich

Name

Typ

Kommentar

Return

BASE64

PT_SIZE

Eine Struktur mit einem Pointer auf den Text und seiner Größe (einschließlich dem abschließenden Zeichen)

Eingang

TextToEncode

PT_SIZE

Der Textblock, der verschlüsselt werden soll

isLastBlock

BOOL

TRUE: Der aktuelle Textblock ist das Ende des Texts

FALSE: Der aktuelle Textblock ist nur ein kleiner Text.

pbyError

POINTER TO BYTE

0: Kein Fehler

1: Textblock zu lang

2: Nicht durch 3 teilbar

4: Leerer String