Einzelnen Beitrag anzeigen

Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
659 Beiträge
 
Delphi 12 Athens
 
#13

AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar

  Alt 31. Jan 2017, 10:31
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
  Mit Zitat antworten Zitat