![]() |
Zeile aus INI-Datei lesen
ich habe folgendes Problem, möchte aus einer INI-Datei einegwisse Zeile lesen um z.B. ein Passwort zu überprüfen.
bin noch ein anfänger darum entschuldigt die Frage! Das Einlesen klappt aber beim Auslesen aus dem INI wird immer der INI-Eintrag gelöscht.
Delphi-Quellcode:
procedure TPasswordDlg1.OKBtnClick(Sender: TObject);
var F: TextFile; S: string; PWString: String; PWlst:TStringList; ini: TIniFile; begin AssignFile(F, 'login.ini'); // Datei auswählen Reset(F); Readln(F, S); // Erste Zeile der Datei lesen CloseFile(F); PWString:=NeuesPassword1.Text; PWlst:=TStringList.Create; IF AltesPassword.Text <> S THEN ShowMessage('Sie haben das alte Passwort falsch eingegeben'); AltesPassword.Text:=''; IF NeuesPassword.Text <> NeuesPassword1.Text THEN ShowMessage('Sie haben das neue Passwort falsch eingegeben'); begin IF NeuesPassword.Text = NeuesPassword1.Text THEN IF AltesPassword.Text = S THEN PWString:=NeuesPassword1.Text; PWlst:=TStringList.Create; PWlst.Add(PWString); PWlst.SaveToFile('login.ini'); PWlst.Free; end; end; kann mir bitte jemand helfen??? mfg P.S: Die Verschlüsselung des Passworts folgt später |
Re: Zeile aus INI-Datei lesen
Wenn du schon die Unit Inifiles eingebunden hast, dann nutze dir doch auch einfach :gruebl:
Versuch mal:
Delphi-Quellcode:
Ini.Readstring('deine Section', 'dein Key', 'dein Std-Wert');
|
Re: Zeile aus INI-Datei lesen
danke schön aber ich habe es oben falsch geschrieben. das Auslesen klappt leider nicht richtig.
ok, das schreiben funktioniert gleich einfach mit:
Delphi-Quellcode:
ich möchte jetzt aber die erste Zeile meines ini-Files auslesen, was muss nun also bei Section eingeben?? :?: DelphiIni.WriteString(Section, Key, 'Ausgabe'); und was hat es mit dem Schlüssel so auf sich? die Ausgabe ist klar!! :!: noch eine andere Frage darf ich diese Bedingung so schreiben oder hat jemand eine andere Variante? Das ini-files sollte nur beschrieben werden, wenn die bei den if richtig sind.
Delphi-Quellcode:
Danke für eure Hilfe.
begin
IF NeuesPassword.Text = NeuesPassword1.Text THEN IF AltesPassword.Text = S THEN ini := TIniFile.Create('login.Ini'); ini.WriteString(Selection,Key, NeuesPassword1.Text); ini.Free; end; MFG |
Re: Zeile aus INI-Datei lesen
Zitat:
[Section] Name=Value |
Re: Zeile aus INI-Datei lesen
|
Re: Zeile aus INI-Datei lesen
Ich weiß jetzt nicht mehr ganz was du meinst, aber kuck dir auch mal ReadSections an, damit kannst du alle Section-Namen auslesen...
|
Re: Zeile aus INI-Datei lesen
Also, ich erkläre noch einmal mein Problem.
Mit dem Befehl
Delphi-Quellcode:
schreibe ich ja in das ini-file aber wo ich nicht so ganz schlau werde ist bein auslesen des ini-files.
ini.WriteString('Passwort-Abfrage','Benutzer','1234');
ini.WriteString('Passwort-Abfrage','Administrator','DELPHI'); ich möchte jetzt zum Beispiel das Passwort des Benutzer wissen, was muss ich im Ausgabefeld eingeben damit er mir den String-Wert ausliest??????
Delphi-Quellcode:
Danke für eure Hilfe
P:=ini.ReadString('Passwort-Abfrage','Benutzer',****************);
|
Re: Zeile aus INI-Datei lesen
Zitat:
Delphi-Quellcode:
Wenn das Auslesen nicht klappt, dann wird halt das zurückgeliefert was in den '' steht, in dem Fall also ein Leerstring.
P:=ini.ReadString('Passwort-Abfrage', 'Benutzer', '');
Und falls das auslesen klappt, dann steht in P der gewünschter Wert... |
Re: Zeile aus INI-Datei lesen
Hi,
ich glaube das was du meinst wäre das...
Delphi-Quellcode:
Hoffentlich stimmts :angle2:
var
res: String; Ini: TIniFile; i: integer; begin ini:=TIniFile.Create('C:MyIni.ini'); try res:=ini.ReadString('Section_1', 'Section_2', res); if Edit1.Text = res then {Vergleicht den Wert in der Ini-Datei mit dem Edit1-String...wenn stimmts, dann...} begin Form2.Show; else {Wenns nicht stimmts, dann...} ShowMessage('Passwort ist falsch!'); finally ini.free; :gruebel: |
Re: Zeile aus INI-Datei lesen
ok, danke an alle. das mit dem ini hat geklappt. :-D
habe aber trotzdem noch eine Frage und zwar hab ich ein bisschen ein durcheinander mit if und else, wenn z.B. eine var meherere bedingungen einhalten muss wie in meinem Beispiel, dass der Fall ist. wie löst ihr profis das am besten??
Delphi-Quellcode:
kann mir da vielleicht auch noch jemand auf die Sprünge helfen??
procedure TPasswordDlg1.OKBtnClick(Sender: TObject);
var ini: TIniFile; P: string; begin ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+ 'test.ini'); P:=ini.ReadString('Benutzer','Passwort',P); IF AltesPassword.Text <> P THEN IF AltesPassword.Text <> 'Administrator' THEN ShowMessage('Sie haben das alte Passwort falsch eingegeben'); AltesPassword.Text:=''; IF NeuesPassword.Text <> NeuesPassword1.Text THEN ShowMessage('Sie haben das neue Passwort falsch eingegeben'); begin IF NeuesPassword.Text = NeuesPassword1.Text THEN IF AltesPassword.Text = P THEN IF AltesPassword.Text = 'Administrator' THEN ini.WriteString('Benutzer','Passwort',NeuesPassword.Text); end; ini.free; end; mit freundlichen Grüssen silvan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 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