Delphi-PRAXiS
Seite 2 von 2     12   

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)

DeddyH 12. Nov 2009 14:38

Re: vergleich mit einer txt datei
 
Und wieso wird da einmal auf j und einmal auf i zugegriffen? Vielleicht zeigst Du uns mal eine Beispielzeile aus der Datei, dann können wir evtl. besser helfen.

p80286 12. Nov 2009 14:44

Re: vergleich mit einer txt datei
 
*!!*

j steht für die Passworte und i für die Benutzernamen und Nero hat da irgendwelche Bezüge durcheinander geworfen. D müssen wohl mal Grundlagen her.

Gruß
K-H

Nero281084 12. Nov 2009 16:26

Re: vergleich mit einer txt datei
 
:shock:

Nero281084 12. Nov 2009 16:39

Re: vergleich mit einer txt datei
 
hab alles hingekriegt.
danke für die hilfe, so schaut der quelltext jetzt aus:

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm4 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Label1: TLabel;
Edit10: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form4: TForm4;
zeilenzaehler, i, j: integer;
FileList: TStringList;
implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
begin
if Edit10.Text = 'Admin' then begin
StringGrid1.Cells[0, zeilenzaehler]:= Form1.Edit1.Text;
StringGrid1.Cells[1, zeilenzaehler]:= DateToStr(now);
StringGrid1.Cells[2, zeilenzaehler]:= loginzeit;
StringGrid1.Cells[3, zeilenzaehler]:= logoutzeit;
end else
ShowMessage('Tut mir Leid, Zugang verweigert.');
FileList.Free;
end;

procedure TForm4.Button2Click(Sender: TObject);
begin
ShowMessage('Erfolgreich ausgelogt');
Form1.Show;
Form4.Visible:= False;
end;

procedure TForm4.FormCreate(Sender: TObject);
begin
zeilenzaehler:= 1;
StringGrid1.Cells[0,0] := 'UserName';
StringGrid1.Cells[1,0] := ('Datum');
StringGrid1.Cells[2,0] := ('Login Zeit');
StringGrid1.Cells[3,0] := ('Logout Zeit');
Edit10.Text:= '';
end;

end.

Nero281084 12. Nov 2009 16:40

Re: vergleich mit einer txt datei
 
sorry war der falsche. hier ist der richtige

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;
zaehler: integer;
loginzeit, logoutzeit: string;
fenster: boolean;
f: TextFile;
implementation

uses Unit2, Unit4;


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
FileList: TStringList;
i, j: integer;
begin
fenster:= false;
if fenster = false then begin
FileList:= TStringList.Create;
FileList.LoadFromFile('D:\Delphi\De2\Formular2.11\ Login.txt');
for j := 0 to FileList.Count - 1 do begin
if form1.Edit2.Text = FileList[j] then begin
for I := 0 to FileList.Count - 1 do begin
if form1.Edit1.Text = FileList[i] then
ShowMessage('Erfolgreich eingelogt');
end;
end;
end;
end else
if fenster = True then begin
ShowMessage('Leider falsch. Versuch es bitte nochmal.');
zaehler:= zaehler + 1;
if zaehler >= 3 then begin
Form1.Close;
end;
end;
FileList.Free;
loginzeit:= TimeToStr(now);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Show;
Form1.Visible:= False;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form4.Visible:= True;
Form1.Visible:= False;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
ShowMessage('Erfolgreich ausgelogt');
logoutzeit:= TimeToStr(now);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
zaehler:= 0;
Edit1.Text:= '';
Edit2.Text:= '';
end;

end.

p80286 12. Nov 2009 17:38

Re: vergleich mit einer txt datei
 
Zitat:

Zitat von Nero281084
sorry war der falsche. hier ist der richtige
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  zaehler: integer;
  loginzeit, logoutzeit: string;
  fenster: boolean;
  f: TextFile;
implementation

uses Unit2, Unit4;


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   FileList: TStringList;
   i, j: integer;
begin
   fenster:= false;
   if fenster = false then begin
       FileList:= TStringList.Create;
       FileList.LoadFromFile('D:\Delphi\De2\Formular2.11\Login.txt');
       for j := 0 to FileList.Count - 1 do begin
           if form1.Edit2.Text = FileList[j] then begin
               for I := 0 to FileList.Count - 1 do begin
                   if form1.Edit1.Text = FileList[i] then
                       ShowMessage('Erfolgreich eingelogt');
               end;
           end;
       end;
   end else
   if fenster = True then begin
       ShowMessage('Leider falsch. Versuch es bitte nochmal.');
       zaehler:= zaehler + 1;
       if zaehler >= 3 then begin
           Form1.Close;
       end;
   end;
   FileList.Free;
   loginzeit:= TimeToStr(now);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   Form2.Show;
   Form1.Visible:= False;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   Form4.Visible:= True;
   Form1.Visible:= False;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
   ShowMessage('Erfolgreich ausgelogt');
   logoutzeit:= TimeToStr(now);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   zaehler:= 0;
   Edit1.Text:= '';
   Edit2.Text:= '';
end;

end.

Vielleicht hast Du es nicht mitbekommen, aber in einem anderen Thread ist sehr breit über die Benutzung von
Delphi-Quellcode:
if boolvar=true then
diskutiert worden.

Bitte nutze immer
Delphi-Quellcode:
if boolvar then
Das gleiche gilt entsprechend für false also
Delphi-Quellcode:
if not(boolvar) then
Für eine Fingerübung mag es ausreichend sein, aber wenn Du ernsthaft Passwörter in Dateien ablegen willst, solltest Du über Hashwerte und oder Verschlüsselung intensiv nachdenken.

Gruß
K-H

DeddyH 12. Nov 2009 18:16

Re: vergleich mit einer txt datei
 
Mir erscheint die ganze Logik etwas seltsam: wenn die Inhalte der Edits jeweils in einer Zeile der Datei enthalten sind, gilt der Login als erfolgreich :gruebel: (da schreib ich doch gleich in beide Edits dasselbe, dann muss ich nur einmal raten).


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.
Seite 2 von 2     12   

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