Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Code (https://www.delphipraxis.net/135896-problem-mit-code.html)

d3zemb3r 19. Jun 2009 17:47


Problem mit Code
 
Delphi-Quellcode:
 If Not fileExists(ExtractFilePath(Application.ExeName) + 'user/'+Edit1.Text+'.txt') Then
        Begin
                 Application.MessageBox('Der User wurde nicht gefunden', 'Fehler', MB_ICONSTOP);
         end
        else
                 Memo1.Lines.LoadFromFile('user/'+Edit1.Text+'.txt');
         end;

        if Edit2.Text = Memo1.Lines[0] AND Edit1.Text = Memo1.Lines[1] then begin
               Form1.Show;
        end.
        else
               Application.MessageBox('Benutzername / Passwort stimmen nicht überein', 'Fehler', MB_ICONSTOP);
        end;
hallo,

bei diesem code wird mir beim 2. If angezeigt:

dekleration erwartet aber if gefunden.


Warum geht das nicht

mkinzler 19. Jun 2009 17:51

Re: Problem mit Code
 
Lass mal das end in Zeile 7 weg.

DeddyH 19. Jun 2009 17:52

Re: Problem mit Code
 
Weil die Klammern fehlen.
Delphi-Quellcode:
if (Edit2.Text = Memo1.Lines[0]) AND (Edit1.Text = Memo1.Lines[1]) then begin
[edit] Oh Gott, da ist aber Einiges im Argen.
Delphi-Quellcode:
If Not fileExists(ExtractFilePath(Application.ExeName) + 'user/'+Edit1.Text+'.txt') Then
  Begin
    Application.MessageBox('Der User wurde nicht gefunden', 'Fehler', MB_ICONSTOP);
  end
else
  Memo1.Lines.LoadFromFile('user/'+Edit1.Text+'.txt');
//end; weg, da kein begin dazu
if (Edit2.Text = Memo1.Lines[0]) AND (Edit1.Text = Memo1.Lines[1]) then //Klammern
  begin //entscheide Dich für einen Stil, Mischen bringt nichts
    Form1.Show;
  end //Punkt weg
else
   Application.MessageBox('Benutzername / Passwort stimmen nicht überein', 'Fehler', MB_ICONSTOP);
//end; weg, s.o.

mkinzler 19. Jun 2009 17:54

Re: Problem mit Code
 
Zitat:

Zitat von DeddyH
Weil die Klammern fehlen.
Delphi-Quellcode:
if (Edit2.Text = Memo1.Lines[0]) AND (Edit1.Text = Memo1.Lines[1]) then begin

Das wäre dann der nächste Fehler ( nach Entfernen des aktuellen).

DeddyH 19. Jun 2009 17:57

Re: Problem mit Code
 
Siehe mein Edit :zwinker:

d3zemb3r 19. Jun 2009 18:02

Re: Problem mit Code
 
danke, hat geklappt.

uwewo 19. Jun 2009 19:44

Re: Problem mit Code
 
Das eigentliche Problem war der "." nach dem end

Sharky 20. Jun 2009 09:04

Re: Problem mit Code
 
Hai d3zemb3r,

ich habe den Code mal noch etwas überarbeitet. Edits, labels und so sollten immer einen "sprechenden Namen" haben. So weisst Du immer was für was da ist.
Delphi-Quellcode:
procedure Tmemo.btn_TestClick(Sender: TObject);
var
  filename: string;
  username: string;
  password: string;
  sl: TStringList;
begin
  username := edt_username.Text;
  password := edt_password.Text;
  filename := ExtractFilePath(Application.ExeName) + 'user/' + username + '.txt';

  if not fileExists(filename) then
  begin
    Application.MessageBox('Der User wurde nicht gefunden', 'Fehler', MB_ICONSTOP);
  end
  else
  begin
    sl := TStringList.Create;
    try
      sl.LoadFromFile(filename);
      if (sl.Count = 2) then
      begin
        if (password = sl.Strings[0]) and (username = sl.strings[1]) then
        begin
          Form1.Show;
        end
        else
        begin
          Application.MessageBox('Benutzername / Passwort stimmen nicht überein',
            'Fehler', MB_ICONSTOP);
        end;
      end;
    finally
      sl.Free;
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 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