Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi vergleich mit einer txt datei (https://www.delphipraxis.net/143246-vergleich-mit-einer-txt-datei.html)

Nero281084 12. Nov 2009 11:50


vergleich mit einer txt datei
 
Hallo leute, da ihr mir beim letzten mal so gut geholfen habt, würde ich euch nochmal bitten euch diesen Quellcode anzusehen und mir da ein bisschen zu helfen.
danke schon mal im voraus
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   PasswortList, UsernameList : TStringList;
   i, n, l, j: integer;
begin
   PasswortList:= TStringList.Create;
   PasswortList.LoadFromFile('D:\Delphi\De2\Formular2.11\Login.txt');
   for j := 0 to length(PasswortList[j]) - 1 do begin
       if form1.Edit2.Text = Copy(PasswortList[j], n, l) then
   end;
   UsernameList:= TStringList.Create;
   UsernameList.LoadFromFile('D:\Delphi\De2\Formular2.11\Login.txt');
   for I := 0 to length(UsernameList[i]) - 1 do begin
       if form1.Edit1.Text = Copy(UsernameList[i], n, l) then
   end;
   ShowMessage('Erfolgreich eingelogt');
   if form1.Edit1.Text = Copy(UsernameList[i], n, l) then begin
       if form1.Edit2.Text = Copy(PasswortList[j], n, l) then
   ShowMessage('Leider falsch. Versuch es bitte nochmal.');
   zaehler:= zaehler + 1;
   end;
   if zaehler >= 3 then begin
       Form1.Close;
   end;
   UsernameList.Free;
   PasswortList.Free;
   loginzeit:= TimeToStr(now);
[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]

Sharky 12. Nov 2009 11:52

Re: vergleich mit einer txt datei
 
Was ist denn das konkrete Problem?

Nero281084 12. Nov 2009 11:55

Re: vergleich mit einer txt datei
 
das programm sagt: EStringError mit der Meldung 'Listenindex überschreitet das Maximum'
und ich nicht auf die txt datei zugreifen und die daten mit den edit.felder vergleichen

DeddyH 12. Nov 2009 12:00

Re: vergleich mit einer txt datei
 
- Du lädst dieselbe Datei in 2 verschiedene Stringlisten, wozu?
- Nicht Length(Stringliste) sondern Stringliste.Count
- "then end;" macht keinen Sinn
- Benutze try-finally-Blöcke, um Speicherlecks zu vermeiden
- Die Variablen "l" und "n" sind nicht initialisiert

Mehr ist mir auf den ersten Blick nicht aufgefallen.

Nero281084 12. Nov 2009 12:10

Re: vergleich mit einer txt datei
 
macht sinn.
probier ich gleich mal aus

Nero281084 12. Nov 2009 12:13

Re: vergleich mit einer txt datei
 
Jetzt sagt mir das programm aber dass er auf die eigenschaft 'count' nicht zugreifen kann

p80286 12. Nov 2009 12:15

Re: vergleich mit einer txt datei
 
Zeig Code!

Gruß
K-H

Nero281084 12. Nov 2009 12:16

Re: vergleich mit einer txt datei
 
FileList:= TStringList.Create;
FileList.LoadFromFile('D:\Delphi\De2\Formular2.11\ Login.txt');
for j := 0 to TStringList.Count - 1 do begin
if form1.Edit2.Text = FileList[j] then begin
if form1.Edit1.Text = FileList[i] then
ShowMessage('Erfolgreich eingelogt');
end else
ShowMessage('Leider falsch. Versuch es bitte nochmal.');
zaehler:= zaehler + 1;
if zaehler >= 3 then begin
Form1.Close;
end;
end;
FileList.Free;

p80286 12. Nov 2009 12:20

Re: vergleich mit einer txt datei
 
Zitat:

Zitat von Nero281084
Delphi-Quellcode:
FileList:= TStringList.Create;
   FileList.LoadFromFile('D:\Delphi\De2\Formular2.11\Login.txt');
   for j := 0 to TStringList.Count - 1 do begin
       if form1.Edit2.Text = FileList[j] then begin
           if form1.Edit1.Text = FileList[i] then
           ShowMessage('Erfolgreich eingelogt');
       end else
       ShowMessage('Leider falsch. Versuch es bitte nochmal.');
       zaehler:= zaehler + 1;
       if zaehler >= 3 then begin
           Form1.Close;
       end;
   end;
   FileList.Free;

so ist hübscher.

Delphi-Quellcode:
for j := 0 to TStringList.Count - 1 
>>>>>
for j := 0 to Filelist.Count - 1
Warum jetzt auf einmal Filelist???

Gruß
K-H

fui-tak 12. Nov 2009 14:27

Re: vergleich mit einer txt datei
 
Zitat:

Zitat von p80286
Warum jetzt auf einmal Filelist???

Bei dir müsste das nicht Filelist, sondern UsernameList oder PasswortList sein.
Wenn du nur das machen würdest:
Delphi-Quellcode:
for j := 0 to TStringList.Count - 1
dann wüsste Delphi ja nicht auf welche Stringlist du zugreifen willst. Du musst die Stringlist schon mit Namen ansprechen also
Delphi-Quellcode:
for j := 0 to UsernameList.Count - 1
bzw.
Delphi-Quellcode:
for j := 0 to PasswortList.Count - 1

[Edit]
Ups, der Post oben drüber ist ja gar nicht von Nero....
Aber kann ja nicht schaden, was ich geschrieben habe


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