Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit ReadString, Immer Def (https://www.delphipraxis.net/152292-problem-mit-readstring-immer-def.html)

Fussel9 17. Jun 2010 15:42

Delphi-Version: 2006

Problem mit ReadString, Immer Def
 
Hi, aus ihrgendeinem Grund greift immer der else Handler

Delphi-Quellcode:
procedure TFEnterPW.CheckPasswort;
var Load: TInifile;
    passwort:String;
begin
  Load:=TInifile.Create(ExtractFilePath(ParamStr(0))+'settings.lem');
  ShowMessage(ExtractFilePath(ParamStr(0))+'settings.lem');
  passwort:=Load.ReadString('MPW','PW','AGAbugudalo91634187621986201245237156');
    if not (passwort='AGAbugudalo91634187621986201245237156') then
      begin
        if not (passwort=EPasswort.Text) then
          begin
            MessageDLG('Falsches Passwort!',mtWarning,[mbCancel],0);
            self.Close;
          end
        else
          begin
            MessageDLG('Passwort stimmt mit dem Masterpasswort überein.',mtInformation,[mbOK],0);
            Application.ShowMainForm:=True;
          end;
      end
    else
      begin
        MessageDLG('Ladefehler!',mtError,[mbOK],0);
      end;
  Load.Free;
end;
Ist da ein fehler im Quelltext...?

DeddyH 17. Jun 2010 15:51

AW: Problem mit ReadString, Immer Def
 
Welcher else-Handler? Ich seh da 2. Bist Du einmal mit F8 durchgesteppt und hast Dir den Inhalt der Variablen angeschaut?

Fussel9 17. Jun 2010 15:56

AW: Problem mit ReadString, Immer Def
 
Dieser Else-Handler:

else
begin
MessageDLG('Ladefehler!',mtError,[mbOK],0);

und es handelt sich demnach um den Def Wert.

Es wird also jedes mal die Fehlermeldung: Ladefehler! ausgelöst....

// Die Ini-Datei existiert und der Eintrag darin ist auch vorhanden... hier mal was in der ini steht:
[Settings]
Autoload=1
Path=23_0_0.lem
Invisible=1
[PW]
MPW=Test

die datei settings.lem liegt im selben ordner wie die .exe

DeddyH 17. Jun 2010 15:58

AW: Problem mit ReadString, Immer Def
 
Dann debugge das Ganze doch einmal. Übrigens, wieso nimmst Du so einen langen Defaultwert und benutzt dann keine Konstanten? Da sind Fehler doch bereits vorprogrammiert.

himitsu 17. Jun 2010 16:02

AW: Problem mit ReadString, Immer Def
 
Zitat:

Delphi-Quellcode:
Load.ReadString('MPW','PW',

(Sektion, Value) und nicht andersrum/falschrum :zwinker:
Delphi-Quellcode:
Load.ReadString('PW','MPW',

PS: Das Passwort im Klartext in einer Textdatei?

Fussel9 17. Jun 2010 16:02

AW: Problem mit ReadString, Immer Def
 
Wieso denn das? Der Defaultwert ist so lang da es etwas sein soll das nie jemand als passwort nehmen wird...
Und wo soll ich denn hier Konstanten benutzen?
Ps: Was soll ich den beim Debuggen finden?
Ich sehe das er in den elehandler spring und der Wert der Def Wert ist...:?:?:

Fussel9 17. Jun 2010 16:04

AW: Problem mit ReadString, Immer Def
 
Zitat:

Zitat von himitsu (Beitrag 1029679)
Zitat:

Delphi-Quellcode:
Load.ReadString('MPW','PW',

(Sektion, Value) und nicht andersrum/falschrum :zwinker:
Delphi-Quellcode:
Load.ReadString('PW','MPW',

xD OMG und ich such das schon seit gestern :lol:

THX:thumb:

Aphton 17. Jun 2010 16:46

AW: Problem mit ReadString, Immer Def
 
du wirst trotzdem in den Else-Bereich deiner Abfrage landen, denn
MPW=Test
und die Abfrage lautet:
- wenn Passwort, das aus der Ini-Datei gelesen wird, <> 'AGAbuguda...' dann
mache jenes
- ansonsten (ELSE BEREICH)
gebe nachricht aus: Ladefehler

xZise 17. Jun 2010 16:56

AW: Problem mit ReadString, Immer Def
 
Zitat:

Zitat von Fussel9 (Beitrag 1029680)
Wieso denn das? Der Defaultwert ist so lang da es etwas sein soll das nie jemand als passwort nehmen wird...[...]

Sag niemals nie!

Stattdessen hätte ich das irgendwie anders gemacht. Keine Ahnung ob man fragen kann, ob der Wert existiert. Aber das wäre dann wesentlich besser und sicherer.

MfG
Fabian

DeddyH 17. Jun 2010 17:06

AW: Problem mit ReadString, Immer Def
 
Und meine Frage, wieso hier keine Konstanten verwendet werden, ist auch noch nicht beantwortet. Nach dem DRY-Prinzip ist das zwingend erforderlich IMHO.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr.
Seite 1 von 2  1 2      

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