Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zufall generieren dauert lange (https://www.delphipraxis.net/22949-zufall-generieren-dauert-lange.html)

Ultimator 26. Mai 2004 17:58


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?

Meflin 26. Mai 2004 18:01

Re: Zufall generieren dauert lange
 
poste doch mal den entsprechenden source teil. prinzipiell hilft Hier im Forum suchenapplication.processmessages oder Hier im Forum suchenmultithreading

Ultimator 26. Mai 2004 18:04

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:
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;
Ich hoffe, ihr könnt mir helfen. :pale:

Meflin 26. Mai 2004 18:07

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!

Ultimator 26. Mai 2004 18:09

Re: Zufall generieren dauert lange
 
OK, danke! Hat mir gehlofen :thuimb:
Aber warum dauert es so lange, 200 Zufallszahlen zu finden?

Meflin 26. Mai 2004 18:10

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!

Ultimator 26. Mai 2004 18:11

Re: Zufall generieren dauert lange
 
Doch, ich hab ein randomize im FormCreate. :wink:

Meflin 26. Mai 2004 18:12

Re: Zufall generieren dauert lange
 
achso, dann passts ja! wär eher kontraproduktiv wenn dus nicht drin hättest :wink:

shmia 26. Mai 2004 18:12

Re: Zufall generieren dauert lange
 
Zitat:

Zitat von Ultimator
Delphi-Quellcode:
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;

Das ist aber extrem ungünstig programmiert!!!
Besser so (braucht nur wenige ms):
Delphi-Quellcode:
   Memo3.Text := RandomString(Length(OriginalText));
Siehe:
(CodeLibrary) Zufallstrings erzeugen

Ultimator 26. Mai 2004 18:16

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 11:46 Uhr.
Seite 1 von 2  1 2      

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