ich habe anhand verschiedener Quellen ein Makro erstellt, das Zufallswörter generiert. Das funktioniert auch wunderbar, allerdings wüsste ich gerne, was in dieser Zeile passiert:
w=Chr(Int((90 - 65 + 1) * Rnd + 65))
Ich weiss, dass 90 und 65 die ASCII-Codes für Z und A stehen. Was aber bedeutet "+1" und "* Rnd + 65" ?
Danke im Voraus
antlock
christopher.g Überflieger
Anmeldedatum: 03.05.2008 Beiträge: 565
Verfasst am: 14.06.2011, 22:25
hi so
wo fang ich da an
Rnd erzeugt eine zahl zwischen 0 und 1
also z.b. 0,325165645
weiters wie du schon festgestellt hast 90 = z und 65 = a
also int((90 - 65) * rnd) würde eine zahl zwischen 0 und 25 * Rnd ergeben
da wäre später als buchstabe von a - y ... deshalb +1
somit wird es 1 - 26 * Rnd
und eben wieder + 65
dass die zahl wieder zwischen 65 und 90 ist
aber wenn dir die funktion zu umständlich ist
dann könntest du eine etwas längere einfacher verständliche funktion verwenden
Code:
Public Function RandomWord(ByVal wLen As Integer) As String
Dim abc As String
Dim i As Integer
Dim sWord As String
abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Randomize
For i = 1 To wLen
sWord = sWord & Mid$(abc, Int(Rnd * 26) + 1, 1)
Next