Home - Programmieren - Visual Basic - VB: Zufallsstrings erstellen
Hinweis: Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich. Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren. [Druckansicht] [Als E-Mail senden] [Kommentar verfassen] Zufallsstring erstellen Wer schon einmal einen Algorithmus zur Bearbeitung von Strings geschrieben hat, der benötigt auch Strings, um seinen Algorithmus zu testen. Nun kann man diese Teststrings selber erstellen, oder man schreibt (bzw. benützt) eine Funktion, welche zufällige Strings erzeugt. Die erste Methode birgt aber einige Nachteile:
Die Funktion kann z.B. auch dafür eingesetzt werden, um Passwörter zu generieren. Der ANSI-Zeichensatz Der ANSI-Zeichensatz beinhaltet 32 Steuer- und 224 druckbare Zeichen. Die Zeichen 0 bis 31 sind Steuerzeichen. Die Großbuchstaben haben die Werte 65 bis 90, die Kleinbuchstaben besetzen die Werte 97 bis 122. Die restlichen Zeichencodes sind Sonderzeichen. Dieser Zeichensatz kann von Sprache zu Sprache variieren, der Code geht aber immer von 0 bis 255. Der Visual Basic Zufallszahlengenerator Bei jeder Hochsprache (Irrtümer vorbehalten) gibt es eine Funktion, welche Zufallszahlen berechnen kann. Dazu wird oft die aktuelle Uhrzeit bzw. das Datum zur Hilfe genommen - es gibt also keine "echten" Zufallszahlen. Für unsere Zwecke sollten diese Pseudo-Zufallszahlen jedoch ausreichen. Für Visual Basic stehen zwei Funktionen zur Verfügung, die sich mit den Zufallszahlen auseinandersetzen, sie heißen rnd, bzw. Randomize. Die Funktion rnd gibt eine Zufallszahl zwischen 0 und 1 zurück (natürlich mit Kommastellen). Durch Multiplikation kann man jedoch jede beliebige Zahl daraus machen. So berechnet man z.B. eine Zufallszahl von 1 bis 100:
Im Innern der Klammern wird zuerst die Funktion rnd() aufgerufen, die eine Zufallszahl zurückgibt. Danach wird diese mit 99 multipliziert. Es kann nun also eine Zahl zwischen 0 und 99 sein. Nach der Addition mit 1 bekommt die Variable "Zahl" einen Wert zwischen 1 und 100.Die Funktion Int() stellt sicher, dass nur der ganzzahlige Teil des Ausdrucks übernommen wird. Die Funktion Randomize() übernimmt eine andere Aufgabe. Sie initialisiert den Zufallszahlengenerator neu. Wenn der Generator nicht explizit initialisiert wird, so wird er innerhalb einer bestimmten Zeitperiode immer die gleiche Folge an Zufallszahlen erstellt. Aufbau der Funktion Funktionskopf: Unsere Funktion soll einen String erstellen, also geben wir auch einen solchen zurück. Die Funktion hat also den Datentyp "String". Es wäre nützlich, wenn man einen Zufallsstring beliebiger Länge erstellen könnte. Also übergeben wir die Länge als Parameter. Weiter wäre es ganz nützlich, wenn man Strings nur aus Buchstaben oder aus allen druckbaren Zeichen erstellen könnte. Bei Buchstabenstrings sollten wir auch zwischen Groß- und Kleinschreibung auswählen können. Dieser Parameter wird aber nur benötigt, wenn der Benutzer einen nur-Buchstaben String will. Machen wir ihn also optional und setzten ihm einen Standardwert. Der Funktionskopf sollte also laut diesen Aussagen ungefähr so aussehen:
Erklärungen
Nun wissen wir zwar, was der Funktionsaufrufende in etwa will - aber noch nicht, um welche ANSI-Codes es sich tatsächlich handelt. Die Zeichen von 0 bis 31 sind Steuerzeichen und fallen von daher ganz weg. Wenn also der Parameter "blnNurBuchstaben" = false ist, dürfen wir alle Codes von 32 bis 255 verwenden! Wenn der Parameter aber = true ist, dürfen wir nur Buchstaben verwenden. Nun muss auch noch der Parameter "blnGross" beachtet werden. Wenn dieser = true ist, dann verwenden wir die Codes von 97 bis 122 - ansonsten 65 bis 90. Wir können nun also die Grenzwerte der Codes feststellen. In Programmcode kann das nun ungefähr so aussehen
Erklärungen
Verkettung des Zufallstrings Nun benötigen wir den Zufallszahlengenerator. Dieser soll am Anfang initialisiert werden. Mit der rnd-Funktion können wir jeweils nur einen Character berechnen. Wir müssen ihn also innerhalb einer Schleife berechnen lassen. Diese wird von 1 bis zum Parameter lngLaenge durchlaufen. Bei jedem Character soll eine Zufallszahl von bytAnfang bis bytEnde berechnet werden. Der Zeichencode des Characters hat einen bestimmten Intervall. Dieser beträgt (bytEnde - bytAnzahl) - also die Differenz zwischen Ende und Anfang. Damit aber die Zufallszahlen am richtigen Ort beginnen, muss er um bytAnfang erhöht werden. Der zufällige Character-Code wird also zusammengefasst so berechnet:
Nun haben wir den Code - dieser muss aber in einen Character umgewandelt werden. Dazu können wir die Funktion Chr() verwenden.Mit dem Rückgabewert der Funktion Chr() können wir nun den Zufallsstring verketten, dieser wird bei jedem Schleifendurchlauf um einen Character länger. Der Programmcode
|
![]() ![]() ![]()
Autoren:04603
Artikel:00815 Glossar:04116 News:13564 Userbeiträge:16556 Queueeinträge:06267 ![]()
Projektsteuerung statt Anwesenheitskontrolle
MONDroid - your monitoring Solution for Android with PRTG-Support Red-Hosting jetzt mit erweitertem Shop-Webhosting-Angebot [Mehr News] ![]()
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
|