![]() |
Zufall generieren dauert lange
Hallo!
Ich habe jetzt ein Verschlüsselungsprogramm geschrieben. Ich bin auch ziemlich weit, aber jetzt wirft sich eine Frage auf: Wenn ich für einen Text ein Zufallspasswort generieren lassen will, und der Text recht lang (>200 Zeichen) ist, dann dauert das. Sogar sehr lange. So, nun möxhte ich dem Benutzer die Möglichkeit geben, den ganzen Vorgang abzubrechen, doch wie mache ich das? |
Re: Zufall generieren dauert lange
poste doch mal den entsprechenden source teil. prinzipiell hilft
![]() ![]() |
Re: Zufall generieren dauert lange
Application.Processmessagen hab ich schon an allen möglichen und unmöglichen Stellen eingefügt, aber hier trotzdem mal der Code zum generieren des Passwortes:
Delphi-Quellcode:
Ich hoffe, ihr könnt mir helfen. :pale:
procedure TForm1.CreateOTP(OriginalText: string);
var i: integer; begin for i := 1 to length(OriginalText) do begin Memo3.Text := Memo3.Text + inttostr(random(255)); Application.ProcessMessages; end; end; |
Re: Zufall generieren dauert lange
dann muss da noch in die schleife sowas rein wie if blAbbruch = true then break; blAbbruch muss dann natürlich boolean sein. wenn du dann per buttonclick blAbbruch 8globale variable) auf true setzt, stoppt die schleife!
|
Re: Zufall generieren dauert lange
OK, danke! Hat mir gehlofen :thuimb:
Aber warum dauert es so lange, 200 Zufallszahlen zu finden? |
Re: Zufall generieren dauert lange
kann ich dir auch nicht sagen. aber mir fällt gerade auf, dass du scheinbar kein randomize verwendest, was du tun solltest, da sonst random immer die gleichen zufallszahlen liefert!
|
Re: Zufall generieren dauert lange
Doch, ich hab ein randomize im FormCreate. :wink:
|
Re: Zufall generieren dauert lange
achso, dann passts ja! wär eher kontraproduktiv wenn dus nicht drin hättest :wink:
|
Re: Zufall generieren dauert lange
Zitat:
Besser so (braucht nur wenige ms):
Delphi-Quellcode:
Siehe:
Memo3.Text := RandomString(Length(OriginalText));
![]() |
Re: Zufall generieren dauert lange
Oh, hehe. Muss ich übersehen haben :oops:
Ist das dann auch echter Zufall oder wieder nur Pseudo-Zufall? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz