___ qstntxt ___
Hi Ich versuche, drei zufällige Zeichen mit einer Funktion in Delphi zu generieren, der Code ist dies:
%Vor%
Das Problem ist, dass mich Dinge wie 20142 zurückhaben, wenn ich tatsächlich 3 Zeichen konstante Zufallsvariablen abwartet.
___ answer19883889 ___
Sie fügen das Ergebnis von %code% zu Ihrem %code% hinzu, nicht den zufälligen Buchstaben aus den Konstanten.
Versuchen Sie stattdessen etwas ähnliches - es verwendet die Rückgabe von %code% als Index in die Zeichenfolgenkonstanten:
%Vor%
___ answer19883912 ___
Sehen wir uns an, was Ihr Code macht, wie ein Compiler es sieht:
%Vor%
IntToStr nimmt eine Zahl (z. B. %code% ) und wandelt sie in eine Zeichenfolge um (z. B. %code% ). Was Sie tun möchten, ist die Verwendung des Zufallswerts, um in Ihr Array zu indizieren, so:
%Vor%
___ answer45236084 ___
%Vor%
___ answer19900560 ___
Schneller wäre es, die erneute Zuweisung von Speicher immer wieder zu vermeiden.
%Vor%
Und manchmal sogar etwas schneller wäre die Verwendung der lokalen Variablen, um einige zusätzliche %code% Aufrufe für den var-Parameter %code% zu vermeiden.
Allerdings sollten Timings oder Code-Prüfungen auf CPU-Ebene für die jeweilige Compiler-Version und Optionen vorgenommen werden, um zu sehen, welchen Unterschied dies tatsächlich macht, falls vorhanden.
%Vor%
PS. Ord-basierte Ansatz ist auch hier besser als ein Char von Array / String, aber das ist ein unabhängiges Problem. Ich würde auch vorsichtig sein, %code% -Funktion mit Delphi 2009 oder neuer zu verwenden, es würde nur einheitlich auf # 0 .. # 127 Werte arbeiten. Explizit deklarierte Typumwandlungen wie %code% und %code% könnten stabiler Ersatz sein, da Sie eines Tages Buchstaben außerhalb des 7-Bit-Teilbereichs benötigen, wie zB eña und andere europäische spezifische.
___ answer35955153 ___
Dies erzeugt zufällige Zeichenfolgen, die wie Wörter aussehen.
%Vor%
Also, benutze es so: GenerateRandomWord (3);
___ tag123delphi ___ Delphi ist eine Sprache für die schnelle Entwicklung von nativen Windows-, macOS-, Linux-, iOS- und Android-Anwendungen mithilfe von Object Pascal. Der Name bezieht sich sowohl auf die Delphi-Sprache als auch auf deren Bibliotheken, Compiler und IDE, mit denen Delphi-Projekte bearbeitet und debuggt werden können.
___ answer39603213 ___
%Vor%
___ antwort19884053 ___
Ihr Code konvertiert ganzzahlige Indexwerte in Zeichenfolgen. Beachten Sie, dass Ihre einzige Referenz auf Ihre Konstanten ihre Länge ist. Sie geben Indizes statt Zeichen zurück.
Sie könnten Ihren Code reparieren, indem Sie die von Ihnen generierten Ganzzahl-Indizes verwenden, um Elemente innerhalb Ihrer String-Konstanten zu referenzieren. Mason und Ken haben gezeigt, wie man das macht.
Persönlich würde ich die Konstanten weglassen und
schreiben
%Vor%
und
%Vor%
und
%Vor%
Die ordinalen Werte dieser Zeichen wurden weit zurückentwickelt, um solchen Code zu erlauben.
___ qstnhdr ___ Erzeuge drei zufällige Zeichen in Delphi
___