' ## RANDOM
DIM rndArray
FOR i = 1 TO 20
randomize
rndArray(i) = Int((6 * Rnd) + 1)
NEXT
Jag har prövat lite olika varianter av detta, men det fungerar inte.
Vad är felet?
4 svar · 2 157 visningar · startad av angelica
' ## RANDOM
DIM rndArray
FOR i = 1 TO 20
randomize
rndArray(i) = Int((6 * Rnd) + 1)
NEXT
Jag har prövat lite olika varianter av detta, men det fungerar inte.
Vad är felet?
nu var det inte igår jag satt med ASP men om du skall ha en array så måste du ju säga att din "rndArray" är en array.
antingen:
dim rndArray(20)
eller rndArray() om du inte vet hur stor din array skall vara
Hej!
Det var ett dumt skrivet inlägg, dum fråga, inser jag nu.
Det du skriver har jag prövat... men det kan ju inte du veta! Ursäkta mig! :-)
Hur som helst, detta fungerar:
' ## RANDOM
DIM rndArray()
FOR i = 1 TO 20
REDIM rndArray(i)
randomize
'myTmpVal = Int((899 * Rnd) + 101)
'response.write myTmpVal & "<BR>"
'rndArray(i) = Array("aaa")
rndArray(i) = Int((6 * Rnd) + 1)
response.write i & ". " & rndArray(i) & "<BR>"
NEXT
Första DIM raden behövs inte, däremot REDIM inne i loopen.
Det var ju vasst av mig att jag kunde komma på det helt själv!!
Gratulerar! :-)
Jag tror tyvärr inte att din kod fungerar riktigt i alla fall. Jag är absolut ingen VB-expert, men jag tror att din array innehåller 19 tomma index och bara det sista indexet innehåller ett värde eftersom att du deklarerar om rndArray för varje varv i loopen. Testa att loopa igenom arrayen igen efter din for-loop och skriv ut värdena, så tror jag att index 1-19 är tomma. Det känns dessutom onödigt att köra Randomize för varje varv i loopen.
voigtann1:s förslag om att skriva dim rndArray(20) borde fungera.
Testa följande:
Dim rndArray(20)
Randomize
For i = 1 To 20
rndArray(i) = Int((6 * Rnd) + 1)
Response.Write i & ". " & rndArray(i) & "<br>"
Next
Lägg till "preserve" efter redim så borde de gamla värdena finnas kvar.
reDim preserve rndArray(i)