Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Durchsuchen von Dateien (https://www.delphipraxis.net/134962-durchsuchen-von-dateien.html)

Johannes013 2. Jun 2009 10:32


Durchsuchen von Dateien
 
Hallo,

Ich bin neu in Delphi 5. Ich habe ein Programm geschrieben, mit einer Passwortbestätigung. Das Passwort wird vom Programm automatisch in der Datei "login.txt" gespeichert. Ich möchte nun über sie Methode Button1Click die Datei login.txt durchsuchen lassen und er soll überprüfen, ob das Passwort mit dem eingegebenen übereinstimmt.

Danke im voraus. :?:

Johannes :?

PS: das Passwort ist "passwort01" (als bsp.)

Luckie 2. Jun 2009 10:33

Re: Durchsuchen von Dateien
 
Guck dir mal Ini-dateien an und die Delphiklasse TIniFiles. Da musst du nichts durchsuchen.

SimStar001 2. Jun 2009 10:36

Re: Durchsuchen von Dateien
 
Oder wenn das Programm nur ein Passwort benötigt, dann lade die datei in eine Liste oder einen Stream und lies dort die erste Zeile aus, und dann haste dein Passwort

Johannes013 2. Jun 2009 10:45

Re: Durchsuchen von Dateien
 
Könntet ihr mir ein kleines Beispiel geben. Ich kenne ich noch nicht so gut aus.
Eins weiß ich ja:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   Append(Datei);
  [Der Befehl fehlt mir]
   if passwort='passwort01' then
      Labe11.Caption:='Korrekt!'
   else
      Labe11.Caption:='Falsch';
end;
aber mehr auch nicht.

Johannes :wiejetzt: :?:

[edit=mkinzler]Fett-Foramtierung durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]

mkinzler 2. Jun 2009 10:48

Re: Durchsuchen von Dateien
 
Hast du dir TIniFile mal näher angesehen?

markus5766h 2. Jun 2009 10:58

Re: Durchsuchen von Dateien
 
Hallo.
ich weiß zwar nicht genau, wofür Dein Passwort benutzt werden soll
(Stichwort Sicherheit ?)
Um mehrere Möglichkeiten der Verarbeitung zu haben, benutze doch folgendes:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
PasswordList : TStringList;
i, n, l :Integer;
begin
PasswordList := TStringList.Create;                  // StringList erzeugen
PasswordList.LoadFromFile('[dateiname]');            // datei in StringList laden
if Copy(PasswordList[i], n, l) = 'dein Passwort' then // Passwort-Abfrage
 begin
  // wenn dein Passwort übereinstimmt, dann .....
 end;
PasswordList.Free;  // StringList wieder freigeben
end;
i ist die Position deines Passwortes, z.B. i := 5; Dein Passwort ist in der 6. Zeile
n ist die Anfangsposition deines Passwortes, z.B. n := 10; Dein Passwort beginnt ab Zeichen 10
l ist die Länge deines Passwortes
die obige Prozedur setzt voraus, dass dein Passwort in einem zumindest einzeiligen Text
gespeichert ist und an Position n mit einer Länge l vorhanden ist.
zu beachten :
Die Eigenschaft Count der StringList beginnt bei 0
Die Position im String beginnt bei 1

Wenn Sicherheit überhaupt keine Rolle spielt, ist TIniFile 'ne sehr gute Möglichkeit
da Du über die Eigenschaften [Section]und den Bezeichner in der Section explizit auf
Dein Passwort zugreifen kannst.

p80286 2. Jun 2009 11:09

Re: Durchsuchen von Dateien
 
Hallo Johannes,

zum einen ist das Vorgehen was Markus aufgezeigt hat sehr empfehlenswert, zum anderen kannst Du eine Text-Datei auch so auslesen

Delphi-Quellcode:
var
  datei : text;                
  satz  : string;
  buffer : array [0..4095] of byte;

.....

assignfile(datei,'C:\temp\pw_file.txt');
settextbuf(buffer);
reset(datei);
repeat
  readln(datei,satz); //hier wird jede Zeile einzeln gelesen
  // bearbeite Satz
until eof(datei);
closefile(datei);
Und mit TInifile kannst Du problemlos Wertepärchen wie
PASSWORT = MeinPasswort
lesen und schreiben. Dann bleibt Dir die Arbeit mit Pos und Copy erspart.

Gruß
K-H

Johannes013 2. Jun 2009 11:17

Re: Durchsuchen von Dateien
 
Das verfahren von Markus hat mir sehr geholfen. Ich hab's hingekriegt. Aber eine Frage hab' ich noch:

Wie kann man Delphi sagen, dass er die Datei pw_file.ini im Unterordner UO2 speichern soll, egal wo Project1.exe liegt?


Danke!


Johannes


PS:Diese Forum ist echt super![i][b]


:coder:

markus5766h 2. Jun 2009 11:26

Re: Durchsuchen von Dateien
 
Hallo,

Delphi-Quellcode:
ForceDirectories([dein Programmverzeichnis]+'\'+[dein Unterverzeichnis]);
ForceDirectories prüft, ob ein Verzeichnis vorhanden ist und erstellt dieses, wenn nicht vorhanden

Dein Programmverzeichnis bekommst Du mit
Delphi-Quellcode:
var
p : array[0..512] of Char;
begin
ProgDir := StrPas(GetCurrentDirectory(512, P));
.
.
.
end;
Die Variable ProgDir als String in private oder public deklarieren

mkinzler 2. Jun 2009 11:28

Re: Durchsuchen von Dateien
 
Und das Verzeichnis der Exe kannst du mit ExtractFilePath( Paramstr(0)) ermittlen.
Ich würde mir aber TIniFile doch mal ansehen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Seite 1 von 3  1 23      

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