webForumDet fria alternativet

problem med att skapa en array

10 svar · 405 visningar · startad av jme

jmeMedlem sedan maj 20012 237 inlägg
#1

Vad är fel?

<%

dim val = Request.form("val") ' heltal

dim myArray(CInt(val) ) <- Microsoft VBScript compilation error '800a0402' Expected integer constant
dim myArray(CInt(val))
------------^

%>

@ndersMedlem sedan juni 200032 969 inlägg
#2

Du kan inte ange en variabel / ett uttryck som storlek i dim, utan endast i redim.
Sålunda:

dim myArray(0)
redim myArray (CInt(val))

Att du inte fann något när du sökte på webForum är dock ett under. ;)

jmeMedlem sedan maj 20012 237 inlägg
#3

följande verka iaf fungera:

dim myArray(10)

myArray(1) = 1
myArray(2) = 2

Response.Write(myArray(1) ) <-- skriver ut 1

@ndersMedlem sedan juni 200032 969 inlägg
#4

Det känns dock felaktigt att göra en array som är alldeles för stor.
Titta gärna på koden i mitt inlägg ovan.

jmeMedlem sedan maj 20012 237 inlägg
#5

Prövade ditt exempel och får då:

Microsoft VBScript runtime error '800a000a'

This array is fixed or temporarily locked

jmeMedlem sedan maj 20012 237 inlägg
#6

hmm.. man kan tydligen heller inte ha dim val = request.form("val")

utan man måste skriva:

dim val

val = ...

J.N.Medlem sedan apr. 20031 660 inlägg
#7

HEJ!

jme skrev:

hmm.. man kan tydligen heller inte ha dim val = request.form("val")

utan man måste skriva:

dim val

val = ...

Nej, i Javascript kan man det (fast utan Request.Form givetvis!), och säkert i andra språk också.

Dim:a variabler kan man däremot göra i rad, Dim a, b, c osv.

@ndersMedlem sedan juni 200032 969 inlägg
#8

hmm.. man kan tydligen heller inte ha dim val = request.form("val")

utan man måste skriva:

dim val

val = ...

Det stämmer. Så funkar vbscript.

Prövade ditt exempel och får då:

Microsoft VBScript runtime error '800a000a'

This array is fixed or temporarily locked

Prova att skapa variabeln först.

val = CInt(val)
dim myArray(0)
redim myArray (val)
jmeMedlem sedan maj 20012 237 inlägg
#9

Fungerar inte. Får fortfarande:

Microsoft VBScript runtime error '800a000a'

This array is fixed or temporarily locked

jmeMedlem sedan maj 20012 237 inlägg
#10

dim myArray() <-- ingen nolla
redim myArray (val)

Nu verkar iaf detta fungera

@ndersMedlem sedan juni 200032 969 inlägg
#11

Du hade kunnat bespara dig lite tid om du hade sökt på "Expected integer constant".
En av de första sökträffarna: http://www.webforum.nu/showthread.php?t=127322

Man kan inte nog understryka hur finfint det kan vara att söka lite ibland! (y) :bire

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)