![]() |
Re: Zeile aus INI-Datei lesen
Moin Silvan,
Zitat:
Danke. |
Re: Zeile aus INI-Datei lesen
Ich glaube nicht, das dies hier in Deinem Sinne funktioniert, weil
das Passwort immer Administrator lauten muss. Ein OR in der IF Abfrage ist hier mit Sicherheit angebrachter....
Delphi-Quellcode:
Es macht sich auch besser, wenn jeder Block ein wenig eingerückt ist. Zumindest kann man es dann besser lesen.
IF NeuesPassword.Text = NeuesPassword1.Text THEN
IF AltesPassword.Text = P THEN IF AltesPassword.Text = 'Administrator' THEN xxx ... Bei jeder Abfrage kann man AND und OR beliebig kombinieren. Hierbei wird nach folgenden Muster verfahren : true AND true = true true AND false = false true OR true = true true OR false = true false OR true = true false OR false = false Die Wahrheitswerte werden normalerweise von den Bedingungen ( in Deinem Fall AltesPassword.Text = P usw.) gebildet. Also
Delphi-Quellcode:
oder
IF (NeuesPassword.Text = NeuesPassword1.Text) THEN
IF ((AltesPassword.Text = P) OR (AltesPassword.Text = 'Administrator')) THEN ....
Delphi-Quellcode:
Ich neige dazu, die Bedingungen in Klammern zu setzen, was mitunter nicht gerade leserlich wird.
IF ((NeuesPassword.Text = NeuesPassword1.Text) AND
((AltesPassword.Text = P) OR (AltesPassword.Text = 'Administrator'))) THEN .... Allerdings akzeptieren nicht alle Programmiersprachen einen so freizügigen Umgang, weshalb eine Umgewöhnung sinnlos ist :-) Dein Routine würde ich wie folgt gestalten :
Delphi-Quellcode:
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); // entweder das Passwort stimmt oder ich bin der Admin IF ((AltesPassword.Text = P) OR (AltesPassword.Text = 'Administrator')) THEN BEGIN AltesPassword.Text:=''; // stimmen Passwort und Sicherheitseingabe IF (NeuesPassword.Text = NeuesPassword1.Text) THEN BEGIN // fällt weg, weil oben bereits die Abfrage erfolgt ist //IF ((AltesPassword.Text = P) OR // (AltesPassword.Text = 'Administrator')) THEN ini.WriteString('Benutzer','Passwort',NeuesPassword.Text); END ELSE ShowMessage('Sie haben das neue Passwort falsch eingegeben'); END ELSE ShowMessage('Sie haben das alte Passwort falsch eingegeben'); ini.free; end; |
Re: Zeile aus INI-Datei lesen
@gustav
ich danke dir für die info und werden es einmal am Abend zu Hause in aller Ruhe ausprobieren. Vielen Dank an alle Grüsse aus der Schweiz |
Re: Zeile aus INI-Datei lesen
Hi,
er kann das mit dem Passwort oder Benutzername oder wie auch immer im eingeloggten Modus machen. Ich meine, er logt sich selber ein und erstellt dann mit Hilfe Edit-Komponenten und Buttons einen neuen Benutzernamen. |
Re: Zeile aus INI-Datei lesen
@kongreddgrass
wie meinst du das?? kannst du das mir einmal aufzeigen?? Grüsse |
Re: Zeile aus INI-Datei lesen
Ich meine,
wenn er als Administrator im Programm ist, dann kann er doch mit seinen Administrator rechten einen neuen Acount zulegen. (Für andere Benutzer) |
Re: Zeile aus INI-Datei lesen
Hi,
ich habe gemeint, de rAdministrator hat ja alle Rechte. Und wenn der Administrator im Programm sich praktisch mit seinem Admin-Passwort und Namen eingeloggt oder wie auch immer eingeloggt ist, könnte er für einen anderen Benutzer einen Account einrichten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 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