Mal eine kleine Ergänzung zu diesem etwas älteren Thread hier, da einen der Gockel hierher schickt, wenn man nach "Base64 Delphi" sucht, was ich gestern getan habe.
In aktuellen Delphi-Versionen (zumindest bei mir in Delphi 10 Seattle - ab wann, weiß ich aber nicht) gibt es die gesuchte Funktionalität mittlerweile auch dort, wo sie eigentlich hingehört, also nicht irgendwo im Bereich
SOAP, sondern in der
Unit System.Netencoding. Dort gibt es die Klassen TNetEncoding, TBase64Encoding und weitere.
TNetEncoding ist die Basisklasse für die konkreten Kodierungsklassen, das heißt, wenn man etwas mit Base64 kodieren will, dann erstellt man sich dafür entweder eine Instanz von TBase64Encoding oder man nutzt die Class-Property "Bae64" von TNetEncoding.
Konkret:
Delphi-Quellcode:
function GetBase64 (aInStr: string): string;
begin
Result:=TNetEncoding.Base64.Encode(aInStr);
end;
Alternativ kann auch von Stream zu Stream oder TBytes zu TBytes kodiert werden oder auch, besonders praktisch für mich gestern, direkt von TBytes zu String:
Delphi-Quellcode:
procedure DoSomethin;
var
myBytes: TBytes;
myBase: string;
begin
[...] // irgendwas, wo das Bytes-Array gefüllt wird
myBase:=TNetEncoding.Base64.EncodeBytesToString(myBytes);
[...]
end;
So, ich hoffe, diese kleine Ergänzung erspart manchem, der per Google hier landet, eine kleine Ehrenrunde.
Bin immer mal wieder üebrrascht, was mittlerweile doch alles in Delphi eingebaut ist...
Bis denn
Bommel