Arraynavn kaldes i funktion - del 2
Det er en fortsættelse på spørgsmål http://www.eksperten.dk/spm/543761Hvor er fejlen, når det gælder eval.
oprindelige kode
var_dsm1 = var_dsm1 + 1
ønskes erstatte med følgende, således at
eval("var_" & navn) = eval("var_" & navn) + 1
men fejlen som kommer "Typer stemmer ikke overens" netop i den linie.
Det skulle gerne ende med, at når funktionen kaldes med DSM ("dsm1"), så får variabel var_dsm1 den værdi som generes i funktionen. Kaldes funktionen med DSM("dsm2") så får variablen var_dsm2 den værdi som generes i funktionen etc.
Nedenfor følger koden.
?? karsten_larsen
<%
Dim arr_svar, arr_dsm1
dsm1 = "40,34,12,65"
arr_dsm1 = Split(dsm1,",")
rigtig = "34,34,34,65"
arr_rigtig = Split(rigtig,",")
Function DSM (navn)
for i = 0 to 3
if arr_rigtig(i) <> 0 then
if arr_rigtig(i) = 34 then
if eval("arr_" & navn)(i) <= 34 then
'var_dsm1 = var_dsm1 + 1
eval("var_" & navn) = eval("var_" & navn) + 1
end if
end if
if arr_rigtig(i) = 65 then
if eval("arr_" & navn)(i) >= 65 then
'var_dsm1 = var_dsm1 + 1
eval("var_" & navn) = eval("var_" & navn) + 1
end if
end if
end if
next
response.write "var_dsm1 = " & eval("arr_" & navn)
End function
DSM ("dsm1")
%>
