Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Verschlüsseln und Entschlüsseln (https://www.delphipraxis.net/186758-verschluesseln-und-entschluesseln.html)

XardasLP 27. Sep 2015 06:48

Verschlüsseln und Entschlüsseln
 
Hallo liebe Community,

ich bräuchte mal kurz Hilfe beim Entschlüsseln einer Textdatei, welche ich vorher verschlüsseln lassen habe.
Ich habe den Inhalt eines Editfeldes verschlüsselt und in ein MemoFeld geschrieben und anschließend in ein Textfile gespeichert.

--> siehe hier:

Delphi-Quellcode:
procedure TFormstart.ButtonPWspeichernClick(Sender: TObject);
var
i, s: integer;
  begin
  Memo2.Clear;
  s:=strtoint(edits1.text);
   for i:=1 to length(editPWeingabe.text) do
                  begin
                    fpw[i] :=ord(editPWeingabe.text[i]);
                    FormStart.Memo2.Lines.Add('');
                    FormStart.Memo2.Lines.Add(inttostr(fpw[i]+s));
                    FormStart.Memo2.Lines.SaveToFile('pw1.txt');
                  end;
                  showmessage('Passwort erfolgreich geändert!');
 end;
Nun zu dem, was nicht funktioneren will:

Delphi-Quellcode:
procedure TFormStart.ButtonPWladenClick(Sender: TObject);
anz: integer;
  fpw:array [1..40] of integer;
  a, s:integer;
  z:char;
  passw, neu, zeile :string;
begin
   assignfile (tf, 'pw1.txt');  
  reset(tf);                  
  readln(tf,zeile);
  if zeile = Editpw.text}
  neu:='';
  s:=strtoint(edits1.Text);
  while not eof(tf) do
    begin
      readln(tf,zeile);
      a:=strtoint(zeile); //<-- Hier wird der Fehler angezeigt
      z:=chr(a-s);
      neu:=neu +z;
    end;

          Memo2.Lines.Add(neu);
          Edits1.Text := '';
          EditPWeingabe.Text := '';
       end
  else begin
            if anz < 2 then
                  begin
                    anz := anz+1;
                    showmessage('Falscher Schlüssel!');
                    edits1.Clear;
                    edits1.SetFocus;
                 
                    end;
end;
  closefile(tf);
end;

end;
Danke schon einmal fürs Helfen :)
MfG

nuclearping 27. Sep 2015 07:12

AW: Verschlüsseln und Entschlüsseln
 
Delphi-Quellcode:
procedure TFormstart.ButtonPWspeichernClick(Sender: TObject);
begin
  // ...
  for i:=1 to length(editPWeingabe.text) do
                  begin
                    // Hier fügst du (mit jedem Durchlauf der Schleife) eine leere Zeile in die Memo ein
                    FormStart.Memo2.Lines.Add('');
                    // ... und speicherst sie mit in die Datei (... auch bei jedem Durchlauf)
                    FormStart.Memo2.Lines.SaveToFile('pw1.txt');
                  end;
                  showmessage('Passwort erfolgreich geändert!');
end;
Delphi-Quellcode:
procedure TFormStart.ButtonPWladenClick(Sender: TObject);
// ...
begin
  // ...
  while not eof(tf) do
    begin
      readln(tf,zeile);
      a:=strtoint(zeile); //<-- Hier wird der Fehler angezeigt, ... weil er versucht, leere Zeilen (die du oben beim Speichern eingefügt hast) in einen Integer zu konvertieren.
      z:=chr(a-s);
      neu:=neu +z;
    end;
  // ...
end;
1) Breakpoints, Debugger, F7, F8, ... Dann wären dir die meisten Probleme deines Codes schon vorher aufgefallen.
2) Deine Code-Einrückung ist furchtbar.
3) Warum speicherst du oben die Datei bei JEDEM Durchlauf der for-Schleife?
4) Warum fügst du bei JEDEM Durchlauf der for-Schleife eine leere Zeile ein?
Delphi-Quellcode:
FormStart.Memo2.Lines.Add('');

XardasLP 27. Sep 2015 22:37

AW: Verschlüsseln und Entschlüsseln
 
Dankeschön, habe Rest jetzt gut alleine hinbekommen :D

Ja manchmal sehe ich die Fehler nicht...
Klar das '' nicht als Zahl oder Integer gedeutet werden kann... :stupid:^^

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz