Hallo Leute,
ich sitze nur seit 2 Stunden und suche nach dem Grund ... und finde keinen.
Ich habe eine Testfunktion geschrieben, um die Verschlüsselung von Passwörtern in meinem Programm zu testen. Die Funktion erstellt automatisch neue Passwörter, speichert diese verschlüsselt in der
DB (auch schon ohne Speichern versucht) und liest sie wieder ein.
Mein Problem ist nun, dass in der for-Schleife aus irgendeinem Grund keine neuen Passworte gebildet werden. Wenn ich die Passwörter in eine Datei schreibe, unterscheiden sich nur die ersten zwei Zeilen. Die letzten 48 Vergleiche finden meist mit dem gleichen Passwort statt. Wieso bloß?
Ach ja, wenn ich an irgendeiner Stelle in der Schleife eine MessageBox anzeige, klappt es wie gewünscht. Ich peile nicht warum.
Ich danke schon im Voraus für Eure Hinweise.
Niels
Code:
procedure TFLogin.Button3Click(Sender: TObject);
var TestPW, Doppel : String; i:Integer;
dat : TextFile;
begin
AssignFile(dat,'C:\Fehlerhafte.txt');
rewrite(dat);
randomize;
for i := 1 to 50 do begin
TestPW := '';
while Length(TestPW) < 26 do
TestPW := TestPW + char( Random(210)+30 );
write(dat,inttoStr(i)+'-'+TestPW + '->');
saveBenutzerPW('TestUser',TestPW);
doppel := getNutzerPW('TestUser');
write(dat,doppel);
if Doppel = TestPW then writeln(dat,'*OK*')
else writeln(dat,'*--*');
end;
closefile(dat);
inpName.Text := 'Fertig';
end;
Die aufgerufene Procedure hat folgenden Funktionskopf:
Code:
procedure saveBenutzerPW(BenutzerName, Kennwort :String);
und dürfte ja wohl keinen Einfuss auf den Wert der lokalen Variablen TestPW haben – oder?