webForumDet fria alternativet

arrRandom(i) = error

4 svar · 2 157 visningar · startad av angelica

angelicaMedlem sedan juli 2013277 inlägg
#1
' ## 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?

voigtann1Medlem sedan juni 20018 810 inlägg
#2

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

angelicaMedlem sedan juli 2013277 inlägg
#3

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! :-)

metalboyMedlem sedan jan. 2005870 inlägg
#4

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
ObbelixMedlem sedan okt. 2002257 inlägg
#5

Lägg till "preserve" efter redim så borde de gamla värdena finnas kvar.

reDim preserve rndArray(i)
Genererad på 374 ms · cache AV · v20260730165559-full.f96bc7eb