Delphi Passwort in einer txt Datei speichern

computerfreaky

Lt. Commander
Dabei seit
Juni 2008
Beiträge
1.589
Hallo
Hab da nen kleines Problem:
Also möchte halt dass der User ein PW eingibt, hab das im Moment mit IF realisiert, aber ich möchte gerne, wenn der User "Change Password" eingibt, dass er ein neues PW erstellen kann und dann immer benutzen kann, also dass das PW irgendwo gespeichert wird, zum Bsp in einer .txt Datei.

Natürlich müsste das Programm ja dann immer wieder das PW aus der .txt Datei herauslesen.
Code:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var UN, PW, NWPD:string;
begin
  write('Username:');
  readln(UN);
  write('Pasword:');
  readln(PW);
  if (PW = 'Change Password') then
    begin
     write('Enter new Password:');
     readln(NWPD);
     write('New Pass word confirmed ','(',NWPD,')');
     readln;
    end
  else if (PW = 'Wasser') then
   begin
    write('**ACCESS OK**');
    readln;
    write('Welcome ',UN);
    readln;
   end
  else if not (PW = 'Wasser') then
   begin
    write('**ACCESS DENIED**');
    readln;
   end;
{ TODO -oUser -cConsole Main : placez le code ici }
end.
Dann müsste man irgendwie viel ändern im Code ^^
Benutze Delphi 6

Naja bin gespannt auf eine hilfreiche Antwort
Danke
 

Anhänge

Zuletzt bearbeitet:

F.b

Lt. Junior Grade
Dabei seit
Feb. 2008
Beiträge
510
wenn delphi und pascal die gleiche syntax haben (ich glaubs zumindest), dann macht man das mit assign(variable,speicherort+dateiname), reset(variable) und close(variable) sowie readln(variable,stringvariable) und writeln(variable,string).
assign weist einer Variablen eine Datei zu, reset öffnet sie, readln und writeln lesen bzw. schreiben eine Zeile und close schließt die datei.
Link:http://www.behrenhoff.de/pascal/dateien.html
 

computerfreaky

Lt. Commander
Ersteller dieses Themas
Dabei seit
Juni 2008
Beiträge
1.589
Hi danke alles funzt einsA:D
Aber nen anderes Problem:
Code:
program changepassword;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var PW:text;
var UN, WP, HP,NP:string;
begin
  write('Username:');
  readln(UN);
  write('Password:');
  readln(WP);

 assign(PW,'D:\Users\Juju\Desktop\test.txt');  //datei der variable PW zuweisen
 reset(PW);     //datei öffnen
 readln(PW,HP);  //datei PW in HP string Wert umwandeln
 close(PW);

  if (WP = HP) then        //WP mit HP vergleichen
   begin
    write('Access OK');
    readln;
    write('Welcome ',UN);
    readln;
   end
  else if not (WP = HP) then
   begin
    write('Access denied');
    readln;
   end;
  if (WP = 'Change Password') then
   begin
     write('New Password:');
     readln(NP);
    assign(PW,'D:\Users\Juju\Desktop\test.txt');
    reset(PW);
    rewrite(PW);
    writeln(PW,NP);
    close(PW);
     write('New Password Confirmed');
     readln;
   end;


  { TODO -oUser -cConsole Main : placez le code ici }
end.
Das Access denied kommt immer wenn ich "Change Password" eingebe, aber das soll nicht dahin kommen, kann man das iwie verhindern?Habs in gelb markiert auf dem Screen

Danke
 

Anhänge

F.b

Lt. Junior Grade
Dabei seit
Feb. 2008
Beiträge
510
Alles klar: Er schreibt 'Access Denied', wenn HP ungleich WP. Das trifft ja auch für WP = 'change Password' zu. Also musst du schreiben:
else if (WP = 'change password')
then begin
write('new password:');
readln(NP);
assign(PW,'D:\Users\Juju\Desktop\test.txt');
reset(PW);
rewrite(PW);
writeln(PW,NP);
close(PW);
write('New Password Confirmed');
readln;
end;
EDIT: Bedenke, dass so jeder das Passwort ändern könnte! Wenn das nicht gewünscht ist, müsstest du vor dem Wechsel das aktuelle Passwort abfragen.
else begin
writeln('Access Denied!');
end;
 
Zuletzt bearbeitet:

computerfreaky

Lt. Commander
Ersteller dieses Themas
Dabei seit
Juni 2008
Beiträge
1.589
hey danke
wusste gar nicht dass das hier auch geht:
Code:
else begin...
dachte man müsste das alles mit IF machen^^
Arbeitest du selber mit Delphi?
THX
@dein edit: ja ich weiss, hab das auch schon probiert aber dann kam auch eben etwas anders was nicht erwünscht war, werde das morgen nochmal probieren, jetzt weiss ich ja das mit else begin

Melde mich morgen oder die Tage
 

F.b

Lt. Junior Grade
Dabei seit
Feb. 2008
Beiträge
510
Ne ich arbeite mit Pascal, von der Syntax scheint es aber identisch zu sein
 
Top