![]() |
Delphi-Version: XE2
Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
In XE2 habe ich nach einer Basis-Funktion für Base64 Codierung gesucht.
Im SOAP-Berich bin ich auf Funktionen gestoßen die aber mit TBytes arbeiten. Gibt es in XE2 keine Entsprechung zu Base64Encode(In: (Ansi)String): (Ansi)String in der RTL? |
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
EncdDecd.pas ??
|
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
Zitat:
Und wieso hat man das nicht in einem Packages das eher im Bereich RTL bzw. Allgemein/Basisfunktionalität liegt? Will man mit dieser Unit arbeiten und würde Laufzeitpackages verwenden müsste man das SOAP-Package mitliefern. Kann ja auch nicht sinn der sache sein sowas allgemeines (wird ja bei "normal" Web und XML auch benötigt). |
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
ich bin noch bei XE (ohne 2) und es funktioniert nur sauber mit folgenden Overloads ....
Delphi-Quellcode:
function EncodeString(const Input: UTF8String): UTF8String; overload;
var InStr, OutStr: TStringStream; begin InStr := TStringStream.Create(Input, TEncoding.UTF8); try OutStr := TStringStream.Create('', TEncoding.UTF8); try EncodeStream(InStr, OutStr); Result := OutStr.DataString; finally OutStr.Free; end; finally InStr.Free; end; end; function DecodeString(const Input: UTF8String): UTF8String;overload; var InStr, OutStr: TStringStream; begin InStr := TStringStream.Create(Input, TEncoding.UTF8); try OutStr := TStringStream.Create('', TEncoding.UTF8); try DecodeStream(InStr, OutStr); Result := OutStr.DataString; finally OutStr.Free; end; finally InStr.Free; end; end; |
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
Zitat:
|
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
Frag mich nicht, ich habe kein XE2, also kein NameSpace
|
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
Zitat:
|
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
@Uwe Rabe
Danke, ich hatte verstanden unter XE2 hätte sich der Name geändert in der Syntax wir bei Generics.Collections.pas |
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
Moin NG,
ich sitze seit gestern mit BASE64 rum und will das in XE2 zum laufen bringen, nun startet zwar das Programm und die Funktion schmeißt auch keine Fehler, aber wie bekomme ich base64 dazu eine base64-codierte Datei auch zu schreiben? @Bummi könntest Du mir die Base64.pas die bei Dir läuft zukommen lassen? Gruß an Alle und schon mal Danke vorab |
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
|
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
Hallo p80286
Danke läuft .... :-D |
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
Hallo p80286,
Danke läuft ... :-D Gruß Michael |
AW: Base64 Encode/Decode-Funktion noch nicht in Basisfunktion verfügbar
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:
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:
function GetBase64 (aInStr: string): string;
begin Result:=TNetEncoding.Base64.Encode(aInStr); end;
Delphi-Quellcode:
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...
procedure DoSomethin;
var myBytes: TBytes; myBase: string; begin [...] // irgendwas, wo das Bytes-Array gefüllt wird myBase:=TNetEncoding.Base64.EncodeBytesToString(myBytes); [...] end; Bis denn Bommel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz