HI @ All
Ich hoffe diese Frage kann einer von euch beantworten.
es handelt sich hier um VBScript.
Im Folgendem Skript wird sichergestellt das jede Zahl, egal in welcher Reihenfolge, nur einmal vorkommt.
Im Script wird in "Sub Shuffle" eine zufällige Reihenfolge der Zahlen 1 bis Wert erstellt. wobei sich keine Zahl wiederholt.
In "Sub NextPage" wird die nächste Zahl übergeben.
Ich muss Dim myArray( 18 ) einen festen wert zuteilen.
Sonst bekomme ich den Fehler "Ganzzahlige Konstante erwartet".
Wie kann ich das ändern?
Das Skript läuft zwar aber ich bekomme nach ca. 4-10 durchläufen der "Sub NextPage" den Fehler
"Die Variable verwendet einen Automatisierungstyp, der von VBScript nicht unterstützt wird.
Ich bin überfragt wieso klappt das 4-10 mal und dann wird nur noch die Letzte zahl ständig wiederholt?
Ziel dieses Script soll sein.
Ein Ergebnis wird aus einer Datenbank in einer Variable gespeichert.
In diesem Fall "Wert = 18"
Diese Variable Wert wird an das Script übergeben.
Jetzt möchte ich gerne ein Array erzeugen das die Zahlen 1 bis 18 erhält.
Alle Zahlen sollen in einer zufällige Reihenfolge sortiert werden wobei jede Zahl nur einmal vorkommen darf.
Sollte "Sub Shuffle" erneut ausgeführt werden müssen die zahlen wieder in einer zufällige Reihenfolge sortiert werden.
Die einzelnen Reihenfolgen müssen nach "Sub Shuffle" sich ständig unterscheiden.
Mit bestem Dank im voraus für eure Mühe verbleibe ich mit freundlichen Grüßen.
SiriusBlack
************************************************************
VBScript
Dim pages, index, Seite
Sub Swap( a,b)
tmp = pages( a)
pages( a) = pages( b)
pages( b) = tmp
End Sub
Sub Shuffle (Wert)
Dim myArray(18)
For x = 1 To Wert
myArray(x) = x
Next
pages = myArray
index = 0
Randomize
For i = 0 To UBound( pages)
j = Int( (UBound( pages)+1)*Rnd)
Swap i,j
Next
End Sub
Sub NextPage
If index = UBound( pages) + 1 Then
pagename = "Start"
index = 0
Else
pagename = pages( index)
index = index + 1
End If
End Sub
************************************************************
Ich hoffe diese Frage kann einer von euch beantworten.
es handelt sich hier um VBScript.
Im Folgendem Skript wird sichergestellt das jede Zahl, egal in welcher Reihenfolge, nur einmal vorkommt.
Im Script wird in "Sub Shuffle" eine zufällige Reihenfolge der Zahlen 1 bis Wert erstellt. wobei sich keine Zahl wiederholt.
In "Sub NextPage" wird die nächste Zahl übergeben.
Ich muss Dim myArray( 18 ) einen festen wert zuteilen.
Sonst bekomme ich den Fehler "Ganzzahlige Konstante erwartet".
Wie kann ich das ändern?
Das Skript läuft zwar aber ich bekomme nach ca. 4-10 durchläufen der "Sub NextPage" den Fehler
"Die Variable verwendet einen Automatisierungstyp, der von VBScript nicht unterstützt wird.
Ich bin überfragt wieso klappt das 4-10 mal und dann wird nur noch die Letzte zahl ständig wiederholt?
Ziel dieses Script soll sein.
Ein Ergebnis wird aus einer Datenbank in einer Variable gespeichert.
In diesem Fall "Wert = 18"
Diese Variable Wert wird an das Script übergeben.
Jetzt möchte ich gerne ein Array erzeugen das die Zahlen 1 bis 18 erhält.
Alle Zahlen sollen in einer zufällige Reihenfolge sortiert werden wobei jede Zahl nur einmal vorkommen darf.
Sollte "Sub Shuffle" erneut ausgeführt werden müssen die zahlen wieder in einer zufällige Reihenfolge sortiert werden.
Die einzelnen Reihenfolgen müssen nach "Sub Shuffle" sich ständig unterscheiden.
Mit bestem Dank im voraus für eure Mühe verbleibe ich mit freundlichen Grüßen.
SiriusBlack
************************************************************
VBScript
Dim pages, index, Seite
Sub Swap( a,b)
tmp = pages( a)
pages( a) = pages( b)
pages( b) = tmp
End Sub
Sub Shuffle (Wert)
Dim myArray(18)
For x = 1 To Wert
myArray(x) = x
Next
pages = myArray
index = 0
Randomize
For i = 0 To UBound( pages)
j = Int( (UBound( pages)+1)*Rnd)
Swap i,j
Next
End Sub
Sub NextPage
If index = UBound( pages) + 1 Then
pagename = "Start"
index = 0
Else
pagename = pages( index)
index = index + 1
End If
End Sub
************************************************************
Kommentar