Avatar billede snie97 Nybegynder
05. maj 2004 - 11:37 Der er 9 kommentarer og
1 løsning

Subscript out of range: [number: 0]

Jeg er ved at udvikle en kompetencetest, hvor der er ca. 30 spørgsmål i 3 kategorier og 20 underkategorier.

Målet med den er at finde brugerens mangler ved forskellige færdigheder i forbindelse med almindelig programmer til pc'en.

Der er dog et problem... Når der skal tælles point op skal der tilføjes point og antal svar til både hovedkategorien og underkategorien...

Hovedkategorierne har hver sin session-variabel (fx. kat1). Underkategorierne samles derimod under en variabel efter hovedkategorien (fx. kat1u - u=underkatergorier).

kat1-variablen er bygget op som en |'separeret streng, kat1u virker på samme måde, men der er flere dimensioner. #'er adskiller underkategorierne, og mellem dem adskilles kategoriens ID, points og antal svar med kommaer (,).

For at tilføje points har jeg lavet denne løkke:

    If kat = 1 Then
        k1s = split(Session("kat1"),"|")
        pts = k1s(0)
        sva = k1s(1)

        ptsN = pts+add
        svaN = sva+sv

        Session("kat1") = ptsN & "|" & svaN

        kat1us = split(Session("kat1u"),"#")
        for i = 1 to ubound(kat1us)
            kat1us2 = split(kat1us(i),",")

            If kat1us2(0) = katu Then ' linie 300
                kat1us2(1) = kat1us2(1) + add
                kat1us2(2) = kat1us2(2) + sv
                nySplit = kat1us2(0) & "," & kat1us2(1) & "," & kat1us2(2)
               
                Session("kat1u") = Replace(Session("kat1u"), kat1us(i), nySplit)
                Response.Write "Tilføjede " & add & " points og " & sv & " svar til underkategori " & katu & " i niveau " & kat & ".<br>"
            End If
        next

Den sidste Response.Write er kun med for at tjekke om funktionen rent faktisk når så langt...

Så langt har jeg dog ikke fået den til at gå, da jeg får følgende fejlkode:

Error Type:
Microsoft VBScript runtime (0x800A0009)
Subscript out of range: '[number: 0]'
/mostest/default.asp, line 300

Linie 300 er denne: If kat1us2(0) = katu Then

Hvis jeg lige skal forklare de andre variabler der bliver brugt så:

kat = Hovedkategoriens id
add = Det antal points der skal tilføjes
sv = Det antal svar der skal tilføjes
katu = Underkategoriens id

Jeg håber I kan hjælpe for det er ret vigtigt at få disse underkategorier med...
Avatar billede and_ Nybegynder
05. maj 2004 - 11:44 #1
det er ikke nemt, når vi kun ser en del af scriptet...

hvor hiver du katu frem?
Avatar billede and_ Nybegynder
05. maj 2004 - 11:47 #2
Denne tror jeg ikke helt legal: for i = 1 to ubound(kat1us)

Prøv at ændre den til:

i = 1
for i to ubound(kat1us)
Avatar billede snie97 Nybegynder
05. maj 2004 - 11:53 #3
iflg. html.dk er den...

fra html.dks asp-tutorial:
For t = 1 to 50
  Response.Write "<p>Denne tekst gentages 50 gange</p>"
Next
Avatar billede and_ Nybegynder
05. maj 2004 - 11:56 #4
jeg skal se dit script for at hjælpe dig.
Hvis jeg skal hjælpe dig kan du sende scriptet på: anders #snabela# tatdata #dot# dk
Avatar billede snie97 Nybegynder
05. maj 2004 - 11:57 #5
du kan også se hele scriptet på http://skema.intelligroup.dk/default.txt

Det er et stort script! det fylder 13 kb...
Avatar billede snie97 Nybegynder
05. maj 2004 - 11:58 #6
jeg har i øvrigt lagt nogle kommentarer i de så fejllinien er rykket til 311...
Avatar billede nute Nybegynder
05. maj 2004 - 13:22 #7
1) har du tjekket for om din streng faktisk ser ud som du forventer ?
2) har du prøvet at bruge LBound() ?

If kat1us2( LBound( kat1us ) ) = katu Then
Avatar billede nute Nybegynder
05. maj 2004 - 13:24 #8
kommentar til 1) :

"din streng" er i dette tilfælde den streng du prøver at splitte

kommentar til 2) :

if skal selfølgelig være:

If kat1us2( LBound( kat1us2 ) ) = katu Then
Avatar billede and_ Nybegynder
19. maj 2004 - 15:06 #9
lukketid?
Avatar billede snie97 Nybegynder
19. maj 2004 - 19:39 #10
ja, måske

hvis jeg skal komme med en afslutning, så endte det med at jeg lavede det på en helt anden måde, hvor jeg først læste spørgsmålene ind i et array, og lagde antal points ind på selve spørgsmålene...
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