![]() |
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.) |
Re: Durchsuchen von Dateien
Guck dir mal Ini-dateien an und die Delphiklasse TIniFiles. Da musst du nichts durchsuchen.
|
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
|
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:
aber mehr auch nicht.
procedure TForm1.Button1Click(Sender: TObject);
begin Append(Datei); [Der Befehl fehlt mir] if passwort='passwort01' then Labe11.Caption:='Korrekt!' else Labe11.Caption:='Falsch'; end; Johannes :wiejetzt: :?: [edit=mkinzler]Fett-Foramtierung durch Delphi-Tag ersetzt Mfg, mkinzler[/edit] |
Re: Durchsuchen von Dateien
Hast du dir TIniFile mal näher angesehen?
|
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:
i ist die Position deines Passwortes, z.B. i := 5; Dein Passwort ist in der 6. Zeile
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; 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. |
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:
Und mit TInifile kannst Du problemlos Wertepärchen wie
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); PASSWORT = MeinPasswort lesen und schreiben. Dann bleibt Dir die Arbeit mit Pos und Copy erspart. Gruß K-H |
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: |
Re: Durchsuchen von Dateien
Hallo,
Delphi-Quellcode:
ForceDirectories prüft, ob ein Verzeichnis vorhanden ist und erstellt dieses, wenn nicht vorhanden
ForceDirectories([dein Programmverzeichnis]+'\'+[dein Unterverzeichnis]);
Dein Programmverzeichnis bekommst Du mit
Delphi-Quellcode:
Die Variable ProgDir als String in private oder public deklarieren
var
p : array[0..512] of Char; begin ProgDir := StrPas(GetCurrentDirectory(512, P)); . . . end; |
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 19:21 Uhr. |
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