![]() |
String verdrehen
^Hi,
hier mal wieder eine einfache Frage.
Delphi-Quellcode:
StringCopy soll eigentlicheine zufällige Reihenfolge von Buchstaben des Strings Uncrypted werden. Aber er wird irgendwie meistens zu kurz, nur 1-2 Buchstaben! (Uncrypted ist 4-9 Buchstaben lang). Wieso das?
StringCopy := Uncrypted;
x := 0; Randomize; For x := 1 to Length(Uncrypted) do begin StringCopy[x] := Uncrypted[Random(Length(Uncrypted))]; end; fortuneNext PS: Jaja, ich überseh wieder was sehr simples... |
Re: String verdrehen
...weil eine Zufallszahl auch mehrmals die gleiche sein kann.
|
Re: String verdrehen
Ich glaube, zwei Denkfehler gefunden zu haben.
a) die for-Schleife darf nur bis Length(...) -1 laufen. Begründung: Sonst liesst Du zuviele Werte aus. b) es muss Random(Length(...) -1) heissen. Begründung: Ein string ist mit "\0" abgeschlossen. Wenn Du bis über das string-Ende rausliesst, liesst Du das "\0" mit aus. Damit ist der string x schon frühzeitig beendet. Wie wäre es, wenn Du mal den Debugger anschmeisst und schaust, wann und warum der string x zu kurz wird. Alles andere sind nur Vermutungen... |
Re: String verdrehen
Ich glaube ihr überseht gerade etwas wichtiges, fortuneNext und RavenIV. Strings werden mit 1 bis Length(Str) indiziert, Random geht aber von 0 bis Parameter-1. Folglich muss zu Random noch 1 addiert werden.
|
Re: String verdrehen
Das ist es. Danke!
|
Re: String verdrehen
Dir ist aber klar, dass Du wahrscheinich nicht die selben Buchstaben wie im Original erhältst?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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