Hmm, naja immer der Reihe nach erstmal.
Ich benötige einen
Login und eine
Registrierung (falls man einen neuen Nutzer anlegen möchte).
Also beim eingeben des Benutzernamens und des Passwortes wird gesucht, ob es eine entsprechende .txt Datei mit dem Namen des Benutzers gibt.
Das bedeutet...
Benutzername: Xardas
Passwort: Test
procedure TFormLogin.Button_Login.Click usw.
dann entsteht eine .txt Datei mit dem Namen Xardas.txt
dort wird das Passwort mit
Ascii und einem gewählten Schlüssel(programmintern) verschlüsselt.
Mein Problem ist jetzt, dass ich bis jetzt nur eine Verschlüsselung für einen Nutzer gemacht habe und dort der Benutzername + einen Schlüssel verschlüsselt war. (wie oben beschrieben mit
Ascii + Schlüssel um die Zahlen zu ändern)
Jetzt muss das Programm aber suchen, sobald ein zweiter Nutzer kommt der auch Xardas heißt, ob es diesen nicht schon gibt.
Das bedeutet Xardas.txt darf nicht überschrieben werden, also Fehlermeldung!
Code:
if (Editpw.Text = '') or (Edits.Text = '') then
begin
showmessage('Bitte Eingaben überprüfen!');
Editpw.Text := '';
Edits.Text := '';
end
else
begin
//if editpw.Text ='12345'
assignfile (tf, 'pw.txt'); //Die Prozedur weist einer Dateivariablen den Namen einer externen Datei zu.
reset(tf); //Die Prozedur offnet eine vorhandene Datei
{readln(tf,zeile);
if zeile = Editpw.text}
passw:='';
s:=strtoint(edits.Text);
while not eof(tf) do
begin
readln(tf,zeile);
a:=strtoint(zeile);
z:=chr(a-s);
passw:=passw +z;
end;
if passw = Editpw.text
then begin
formstart.Show;
formmain.Visible:=false;
end
else begin
if anz<2 then
begin
showmessage('Passwort Falsch !');
anz:=anz+1;
editpw.Clear;
edits.Clear;
editpw.SetFocus;
end
else
begin
anz:=anz+1;
if anz=3
then begin
showmessage('Sie besitzen keine Zugangsberechtigung!');
close;
end;
closefile(tf);
end;
end;
end;
end;
Das ist die alte beschrieben Sache...
bei der neuen weiß ich jetzt nicht wie ich dafür sorge das er die Datei nicht überschreibt und ich dann eine Meldung bringen kann. [showmessage('Dieser Nutzer existiert bereits!')
Bis jetzt so weit:
Code:
var
FormLogin: TFormLogin;
Benutzername: string;
tf: textfile;
implementation
uses URegistrierung;
{$R *.dfm}
procedure TFormLogin.Button_RegClick(Sender: TObject);
{1}begin
FormReg.Show;
FormLogin.ShowHint := True;
{1}end;
procedure TFormLogin.Button_LoginClick(Sender: TObject);
{1}begin
if (Edit_Benutzername.Text = '') or (Edit_PW.Text = '') then
{1}begin
showmessage('Bitte überprüfen Sie Ihre Eingaben!');
Edit_Benutzername.Text := '';
Edit_PW.Text := '';
{1}end
else
{2}begin
Benutzername := Edit_Benutzername.Text;
assignfile(tf,Benutzername+'.txt');
reset(tf);
closefile(tf);
{2}end
end;
Geht das mit dem
Code:
assignfile(tf,Benutzername+'.txt');
, weil das ja eine vorhandene Datei normalerweise öffnet.
Bräuchte eine normale Savetofile[] Variante. //
NACHTRAG: Ok gut ich schreibe den Inhalt der Edit-Felder in ein unsichtbares MemoFeld und mache dann Memo.Lines.SaveToFile...