![]() |
Datei in Base64 konvertieren
Hallo,
kann mir jemand beschreiben bzw. einen Code Schnippsel geben, wie ich eine Datei (z.B. JPG, BMP) in einen Base64 String konvertiere um ihn in einer XML zu speichern? Gruß Matthias |
Re: Datei in Base64 konvertieren
|
Re: Datei in Base64 konvertieren
Sorry barf00s,
aber hilft mir irgendwie (noch) nicht. Gruß Matthias |
Re: Datei in Base64 konvertieren
Hallo Matthias,
für das Konvertieren kannst du auf Routinen hier aus der CodeLib zurückgreifen. Oder ist dein Problem das Erstellen bzw. Modifizieren einer XML-Datei? Grüße vom marabu |
Re: Datei in Base64 konvertieren
Hi marabu,
meinst du diesen Code-Lib Post? ![]() Wie mache ich das nun aber mit einer Datei? Bitte gib mir einen Ansatz. Danke. Gruß Matthias |
Re: Datei in Base64 konvertieren
du kannst deine datei innem Memorystream speichern und dann mit der .Memory eigenschaft rumspielen
|
Re: Datei in Base64 konvertieren
Hier mein erster Versuch mit Hilfe von Base64Encode aus der Code-Library:
Delphi-Quellcode:
Das mit dem dem "ABase64Str" für die Rückgabe haut aber irgendwie nicht hin.
function Base64EncodeFile(AFileName: String; var ABase64Str: String): Boolean;
var ms: TMemoryStream; InSize, OutSize: Cardinal; PIn, POut: Pointer; begin result:= False; ABase64Str:= ''; if FileExists(AFileName) then begin with TMemoryStream.Create() do try LoadFromFile(AFileName); // get size of source InSize := Size; Position:= 0; // calculate size for destination OutSize := CalcEncodedSize(InSize); SetLength(ABase64Str, OutSize); // encode ! PIn := Memory; POut:= @ABase64Str[1]; Base64Encode(PIn, InSize, POut); result:= True; finally Free; end; end; end; Wäre nett, wenn das mal einer ausprobieren könnte und den Fehler findet. Gruß Matthias |
Re: Datei in Base64 konvertieren
Hi,
hat denn keiner Zeit das mal aus dem Post eins weiter oben zu probieren und/oder kann mir sagen wo der Fehler liegt? Ich find ihn einfach nicht. Danke und Gruß Matthias |
Re: Datei in Base64 konvertieren
Hallo Matthias,
dein Code sieht in meinen Augen korrekt aus. Vielleicht möchte ja sakura etwas zur korrekten Handhabung seines Codes schreiben. marabu [edit]Bis dahin entferne mal die Zuweisung des empty string auf ABase64Str am Beginn deiner Funktion[/edit] |
Re: Datei in Base64 konvertieren
@marabu:
den Leerstring am Anfang habe ich entfernt und der Code läuft jetzt auch (irgendwie). Hier noch das dekodieren, welches auch noch nicht richtig funktioniert:
Delphi-Quellcode:
Fehler? :? :(
function Base64DecodeFile(ABase64Str: String; AFileName: String): Boolean;
var InSize, OutSize: Cardinal; PIn, POut: Pointer; begin result:= False; // get size of source InSize := Length(ABase64Str); // calculate size for destination PIn := @ABase64Str[1]; OutSize := CalcDecodedSize(PIn, InSize); // prepare string length to fit result data with TMemoryStream.Create() do try SetSize(OutSize); POut := Memory; // decode ! if Base64Decode(PIn, InSize, POut) then begin SaveToFile(AFileName); result:= True; end; finally Free; end; end; Gruß Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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