Avatar billede fredand Forsker
11. oktober 2002 - 16:39 Der er 1 kommentar og
2 løsninger

Array problems in VB

Hello!

I tries build a small webshop with a basket stored in the Session.

The first time the user add something this works but the next time I get a error for this code:

ReDim Preserve korg(UBound(korg,1) + 1, 2)

like this:

Feltyp:
Körningsfel i Microsoft VBScript (0x800A0009)
Felaktigt matrisindex
/webbshop/add.asp, line 23

It means Wrong index in the matrise.

The code look like this:

<%

    ' Vi läser in värden
    prodname = Request.Form("ProdName")
    count = Request.Form("Antal")
    prodid = Request.Form("ProdId")

    Dim korg    'utelämna parenteserna för säkerhets skull eftersom de kan ställa till det senare
    Dim index

    If Not IsArray(Session("korg")) Then    'Eftersom sessionen är en array är det bättre att göra en sådan koll!
        ReDim korg(0,2)    'Eller om ni vill vara säkra på att det blir likamånga positioner som sessionsarrayen
        'Redim korg(Ubound(Session("korg"),1),Ubound(Session("korg"),2))
        korg(0, 0) = prodname
        korg(0, 1) = count
        korg(0, 2) = prodid

        'här sätter jag sessionen!
        Session("korg") = korg
    Else
        korg = Session("korg")
        ReDim Preserve korg(UBound(korg,1) + 1, 2)
        index = UBound(korg,1)
        korg(index, 0) = prodname
        korg(index, 1) = count
        korg(index, 2) = prodid

        'här uppdaterar jag värdet till sessionen eftersom det är den värdet hämtas från!
        Session("korg") = korg
    End If


%>

So if any one can se what the problem is please let me know!!

Best regards

Fredrik
Avatar billede neteffect Nybegynder
11. oktober 2002 - 17:13 #1
If you use the Preserve keyword, you can resize only the last array dimension.
Avatar billede eagleeye Praktikant
11. oktober 2002 - 19:10 #2
Take a look here and see how to manipulate arrays in ASP. http://www.developersdex.com/gurus/code/11.asp

As neteffect has answred you can only use ReDim Preserve on the last dimension.

Another thing redim preserve is very slow function, take at look here and a posible alternative to the array.:
http://www.aspheute.com/english/20001025.asp
Avatar billede fredand Forsker
14. oktober 2002 - 09:16 #3
Aha!

Thanks mates!!

Best regards

Fredrik
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