AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei in Base64 konvertieren

Ein Thema von Brainshock · begonnen am 1. Jul 2005 · letzter Beitrag vom 4. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#1

Datei in Base64 konvertieren

  Alt 1. Jul 2005, 10:09
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
Matthias
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#2

Re: Datei in Base64 konvertieren

  Alt 1. Jul 2005, 10:19
google ist dein freund
aber evtl hilft dir www.efg2.com/Lab
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#3

Re: Datei in Base64 konvertieren

  Alt 1. Jul 2005, 11:55
Sorry barf00s,

aber hilft mir irgendwie (noch) nicht.

Gruß
Matthias
Matthias
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Datei in Base64 konvertieren

  Alt 1. Jul 2005, 12:00
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
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#5

Re: Datei in Base64 konvertieren

  Alt 1. Jul 2005, 13:10
Hi marabu,

meinst du diesen Code-Lib Post?

Base64 (MIME) En-/Decoding

Wie mache ich das nun aber mit einer Datei? Bitte gib mir einen Ansatz. Danke.

Gruß
Matthias
Matthias
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#6

Re: Datei in Base64 konvertieren

  Alt 1. Jul 2005, 13:11
du kannst deine datei innem Memorystream speichern und dann mit der .Memory eigenschaft rumspielen
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#7

Re: Datei in Base64 konvertieren

  Alt 1. Jul 2005, 14:33
Hier mein erster Versuch mit Hilfe von Base64Encode aus der Code-Library:

Delphi-Quellcode:
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;
Das mit dem dem "ABase64Str" für die Rückgabe haut aber irgendwie nicht hin.
Wäre nett, wenn das mal einer ausprobieren könnte und den Fehler findet.

Gruß
Matthias
Matthias
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#8

Re: Datei in Base64 konvertieren

  Alt 3. Jul 2005, 16:13
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
Matthias
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Datei in Base64 konvertieren

  Alt 3. Jul 2005, 17:30
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]
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#10

Re: Datei in Base64 konvertieren

  Alt 4. Jul 2005, 09:11
@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:
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;
Fehler?

Gruß
Matthias
Matthias
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz