AGB  ·  Datenschutz  ·  Impressum  







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

CodeBase64 wirft Fehler auf - Warum?

Ein Thema von torud · begonnen am 8. Apr 2004 · letzter Beitrag vom 8. Apr 2004
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

CodeBase64 wirft Fehler auf - Warum?

  Alt 8. Apr 2004, 13:02
Hallo Leute,

ich schreibe mit einer Base64 Routine einen String in eine Datei. Wenn ich diesen dann aber zur Kontrolle auslesen will bekomme ich immer wieder die Meldung, dass das StringFormat unkorrekt ist. Ich lasse mir aber den String vorher anzeigen und kann keinen Fehler festellen.

'1234' ist doch ein gueltiger String, oder?

Hier steigt die Procedure aus:
Wenn ich diesen Bereich aber rausremme, funzt die Ueberpruefung nicht.
Code:
  if (Length(S) mod 4)<> 0 then
    begin
      raise Exception.Create('Base64: Incorrect string format');
    end;
Wer hat eine Idee.

Ich schicke auch gern den gesamten Code, wenns nuetzt.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: CodeBase64 wirft Fehler auf - Warum?

  Alt 8. Apr 2004, 13:05
Die Routine überprüft, ob die Länge des Strings ein vielfaches von 4 ist. (also '1234' wäre auch da korrekt). Schau mal in die CodeLib, da habe ich auch eine Lösung gepostet.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

Re: CodeBase64 wirft Fehler auf - Warum?

  Alt 8. Apr 2004, 13:14
Hallo Sakura,

vielen Dank fuer die schnelle Hilfe. Leider weiss ich nicht, was Du mit CodeLib meinst. Kannst Du bitte konkreter werden?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: CodeBase64 wirft Fehler auf - Warum?

  Alt 8. Apr 2004, 13:16
Zitat von torud:
Leider weiss ich nicht, was Du mit CodeLib meinst. Kannst Du bitte konkreter werden?
Sorry: Die Delphi-PRAXiS Code-Library -> Library: Algorithmen -> Base64 (MIME) En-/Decoding

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: CodeBase64 wirft Fehler auf - Warum?

  Alt 8. Apr 2004, 16:02
also ich habe mir mal den code kopiert und natuerlich gleich ausprobiert. die fehlermeldung kommt nun nicht mehr, dafuer aber auch kein inhalt.

folgendes tue ich zum Erstellen:
Code:
var
   FileID:TStringlist;
begin
             FileID := TStringList.Create;
             FileID.Text := Base64Encode('1234/abcd');
             ShowMessage(fileid.Text);
             FileID.SaveToFile(App_Path + '\license.id');
end;
und folgendes zum Auslesen
Code:
procedure TForm1.CheckUserID;
var
  FileID:TStringlist;
begin
        if FileExists(App_Path + '\license.id') then
          begin
             FileID := TStringList.Create;
             FileID.LoadFromFile(App_Path + '\license.id');
             ShowMessage((FileID.Text));
             ShowMessage(Base64Decode(FileID.Text));
             if Base64Decode(FileID.Text) = '1234/abcd' then exit
             else
               begin
                 PageControl1.Pages[1].Destroy;
                 PageControl1.Pages[3].Destroy;
               end;
          end
        else
          begin
             PageControl1.Pages[1].Destroy;
             PageControl1.Pages[3].Destroy;
          end;
end;
Die Messagebox mit dem Inhalt der Datei stimmt.
Leider gibt mir die Messagebox mit dem encodeten Inhalt einen Leerstring zurueck.

hm, wo liegt das problem???
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6

Re: CodeBase64 wirft Fehler auf - Warum?

  Alt 8. Apr 2004, 16:19
Eine StringList wird immer durch #13#10 abgeschlossen, egal, wie es gespeichert wurde Dadurch ist Dein zu dekodierender String inkorrekt. Ändere wie folgend:
Code:
ShowMessage(Base64Decode([color=#f50000]Trim([/color]FileID.Text[color=#f50000])[/color]));
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: CodeBase64 wirft Fehler auf - Warum?

  Alt 8. Apr 2004, 16:27
Vielen herzlichen Dank!

Es funktioniert.
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:28 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