![]() |
Re: Datei in Base64 konvertieren
Dein Code ist in Ordnung und funktioniert bei mir. Wie und an welcher stelle macht sich bei dir ein Fehler bemerkbar?
marabu |
Re: Datei in Base64 konvertieren
Das Problem liegt direkt beim Dekodieren, die Rückgabe ist False und die Ausgabedatei wird deshalb nicht geschrieben.
POut ist bei der Übergabe nil, was wahrscheinlich das Problem ist. @marabu: Hast du eine Idee ? Gruß Matthias |
Re: Datei in Base64 konvertieren
Wenn der Zeiger für den Ausgabepuffer schon nil ist, dann liegt es ja nicht am dekodieren. Du wirst mal ein wenig tracen müssen. Wenn POut nil ist, dann scheint Memory auch nil zu sein. Eventuell ist ja schon SetSize() wegen einer falschen Größenangabe fehlgeschlagen.
marabu |
Re: Datei in Base64 konvertieren
Hier mal meine Prozeduren (der Buttons) für das Kodieren und Dekodieren:
Kodieren:
Delphi-Quellcode:
Dekodieren:
procedure TForm1.Button1Click(Sender: TObject);
const INPUTFILE = 'C:\test.jpg'; OUTPUTFILE = 'C:\test.b64'; var OutText: String; begin Base64EncodeFile(INPUTFILE, Outtext); DeleteFile(OUTPUTFILE); with TFileStream.Create(OUTPUTFILE, fmCreate) do try Write(Outtext[1], Length(Outtext)); finally Free; end; end;
Delphi-Quellcode:
Vielleicht liegt hier auch noch ein Fehler.
procedure TForm1.Button2Click(Sender: TObject);
const INPUTFILE = 'C:\test.b64'; OUTPUTFILE = 'C:\out.jpg'; var InText: String; begin with TFileStream.Create(INPUTFILE, fmOpenRead) do try Position:= 0; SetLength(InText, Size); Read(InText[1], Size); finally Free; end; Base64DecodeFile(InText, OUTPUTFILE); // editiert: von Text -> InText geändert end; Gruß Matthias |
Re: Datei in Base64 konvertieren
@marabu: Es war noch ein kleiner Fehler in der Button2Click() Methode (siehe edit-Kommentar) und jetzt funktioniert es auch. Danke.
:-D Gruß Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 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