Thema: Delphi Memory-Spiel: Ideen

Einzelnen Beitrag anzeigen

XardasLP
(Gast)

n/a Beiträge
 
#19

AW: Memory-Spiel: Ideen

  Alt 27. Jan 2016, 15:06
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...

Geändert von XardasLP (27. Jan 2016 um 15:11 Uhr)
  Mit Zitat antworten Zitat