webForumDet fria alternativet

Matrisjävlar

ASP

4 svar · 197 visningar · startad av star

Medlem sedan apr. 200142 inlägg
Frågan#1

Följande kodsnutt:

Function rollDices(dice)
dim arrDump
dim arrPump
arrDump = Split(dice, "+")
x = arrDump(1)                     '*
arrPump = Split(arrDump(0), "T")
y = arrPump(0)
z = arrPump(1)

If x = 0 OR x = "" then
x = 0
End If

Randomize
rollDices = clng(y*((z * Rnd) + 1) + x)   
End Function

countThis = rollDices(1T10+1)

Orsakar följande felmeddelande:

Körningsfel i Microsoft VBScript fel '800a0009'

Felaktigt matrisindex: '[number: 1]'

på raden markerad med en asterix. Varför kan man inte referera till arrayer på det här sättet. Vilken är lösningen?

*

Medlem sedan apr. 200142 inlägg
#2

Förlåt, anropas naturligtvis med:

countThis = rollDices("1T10+1")

*

Medlem sedan dec. 200012 464 inlägg
#3

Varför kan du inte ha olika parametrar?

Function rollDices(x,y,z)
If x = "" then
x = 0
End If

Randomize
rollDices = clng(y*((z * Rnd) + 1) + x) 
End Function
countThis = rollDices(1,10,1)

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 200142 inlägg
#4

Jag kan inte använda olika parametrar för argumentet som sänds med rolldices egentligen är en sträng som mottages med Request.Form. Det blir mycket jobbigare. Tyvärr.

Medlem sedan dec. 200012 464 inlägg
#5

Jag testade din kod (i IE) och får inget fel.

------------------
essentitia preter non sans multiplicandum

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)