![]() |
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! |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Freeware" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ja keine Vorstellung eines eigenen Programmes ;-) |
Re: Durchsuchen von Dateien
Danke........und wie kann man den Dateiinhalt löschen?
Johannes PS: Ich weiß, ich frage viel! :angel2: |
Re: Durchsuchen von Dateien
So durch überschreiben. Aber in deinem Fall wären die Funktionen von TiniFile gut geeignet zu sein. Du ignorierst diesen Tipp aber konsequent. Vielleicht solltest du dieses Vorgehen mal überdenken!
|
Re: Durchsuchen von Dateien
Es ist nicht so, dass ich diesen Tipp ignoriere. Ich komme mit der Hilfe von Delphi 5 nicht klar! :(
Diese Beispiele und so verstehe ich nicht. Wir lernen das gerade erst in der Schule. |
Re: Durchsuchen von Dateien
Der Vollständigkeit halber :
Delphi-Quellcode:
var
fullFileName : string; begin // Set up a full file name with drive and path fullFileName := 'C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu'; // Show the component parts of this full name ShowMessage('Drive = '+ExtractFileDrive (fullFileName)); ShowMessage('Dir = '+ExtractFileDir (fullFileName)); ShowMessage('Path = '+ExtractFilePath (fullFileName)); ShowMessage('Name = '+ExtractFileName (fullFileName)); ShowMessage('Ext = '+ExtractFileExt (fullFileName)); end; Show full unit code Drive = C: Dir = C:\Program Files\Borland\Delphi7\Projects Path = C:\Program Files\Borland\Delphi7\Projects\ Name = Unit1.dcu Ext = .dcu |
Re: Durchsuchen von Dateien
Sehr innovativ den festen Pfad im Programm vorzugeben :shock:
|
Re: Durchsuchen von Dateien
Thema TIniFile:
Die Hilfe gehört mit noch zum Besten der alten IDE... Hilfe -> TIniFile dort Methode Create (oder gleich Hilfe zu TCustomIniFile.Create). Dort gibt es ein schönes Beispiel mit zwei Buttons (lesen/schreiben)... ich darf es nicht posten, (c) Borland, aber einfacher geht es ja kaum. |
Re: Durchsuchen von Dateien
Zitat:
Den Pfad inklusive Name der Exe-Datei bekommt man mit ![]() |
Re: Durchsuchen von Dateien
Danke.... :wall:
|
Re: Durchsuchen von Dateien
Hier mal ein Beispiel zu TIniFile:
Delphi-Quellcode:
Deine Ini-Datei muss jetzt so aussehen:
uses IniFiles;
procedure ReadIni; var Ini : TIniFile; Password : String; begin Ini:= TIniFile.Create(Pfad und Dateiname); Password := Ini.ReadString('Password', 'PW1', 'Fehler'); Ini.Free; end; procedure SaveIni; var Ini : TIniFile; Password : String; begin Ini := TIniFile.Create(Pfad und Dateiname); Ini.WriteString('Password', 'PW1', Password); Ini.Free; end; [Password] PW1=[dein Passwort] |
Re: Durchsuchen von Dateien
Danke. Jetzt hat's gefunkt.
:dancer2: Johannes |
Re: Durchsuchen von Dateien
Zitat:
GetCurrentDirectory funktioniert nur korrekt im Ereignis On Create, da sich im weiteren Programmverlauf das aktuelle Arbeits-Verzeichnis ja schon geändert haben kann |
Re: Durchsuchen von Dateien
Zitat:
|
Re: Durchsuchen von Dateien
@ mkinzler
wenn ich eine Anwendung per Verknüpfung mit anderem Arbeitsverzeichnis starte: zu welchem Zeitpunkt - wenn nicht nach OnCreate - wird dann dieser Parameter verarbeitet ? |
Re: Durchsuchen von Dateien
Zitat:
|
Re: Durchsuchen von Dateien
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 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