Avatar billede karsten_larsen Praktikant
26. september 2004 - 11:18 Der er 3 kommentarer og
1 løsning

Arraynavn kaldes i funktion - del 2

Det er en fortsættelse på spørgsmål http://www.eksperten.dk/spm/543761


Hvor 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")
%>
Avatar billede eagleeye Praktikant
26. september 2004 - 11:39 #1
arh ok eval giver resultet og ikke variablen så prøv at rette:
                eval("var_" & navn) = eval("var_" & navn) + 1

til:
                execute("var_" & navn & " = var_" & navn & " + 1")
Avatar billede eagleeye Praktikant
26. september 2004 - 11:40 #2
Den sidste linje funktionen:
response.write  "var_dsm1 = " & eval("arr_" & navn)


skal vist rettes så den udskriver var_dsm1 og ikke arr_dsm1:
response.write  "var_dsm1 = " & eval("var_" & navn)
Avatar billede karsten_larsen Praktikant
26. september 2004 - 11:57 #3
eagleeye -> fedt - det virker bare. Så fik jeg reduceret min kode ganske betydelig.

Vil du lave et svar.

:-) karsten_larsen
Avatar billede eagleeye Praktikant
26. september 2004 - 11:57 #4
Ok ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester