Avatar billede steen Nybegynder
01. december 2002 - 16:53 Der er 3 kommentarer og
1 løsning

Subscript out of range linie 17

Hvad er der galt her?

Dim arrMitArray(2,1) 'vareliste
arrMitArray(0,0) = "Ged"
arrMitArray(0,1) = "1293"
arrMitArray(1,0) = "Høne"
arrMitArray(1,1) = "142"
arrMitArray(2,0) = "Frø"
arrMitArray(2,1) = "26"

Dim arrMitNyeArray(0,1) 'indkøbsvogn
arrMitNyeArray(0,0) = "Bille"
arrMitNyeArray(0,1) = "73217"
arrMitNyeArray(1,0) = "Giraf"
arrMitNyeArray(1,1) = "1832"

Sub PlacerIIndkoebsvogn(intArrayPlace, ByRef strFrom, ByRef strTo)
    Dim intToPlace
    intToPlace = Ubound(strTo,1) + 1 ' gemmer nummeret på den nye tomme plads
    ReDim Preserve strTo(intToPlace,Ubound(strTo,2)) 'opretter ny plads
    For i = 0 To Ubound(strFrom,2) 'placerer alle elementer i rækken
        strTo(intToPlace,i) = strFrom(intArrayPlace,i)
    Next
End Sub

PlacerIIndkoebsvogn 1,arrMitArray,arrMitNyeArray ' kalder sub´en

Response.write arrMitNyeArray(2,0) & " - " & arrMitNyeArray(2,1) ' skulle resultere i "Høne" & "142"
Avatar billede steen Nybegynder
01. december 2002 - 16:55 #1
der er lige en ændring: Dim arrMitNyeArray(0,1) 'indkøbsvogn
skal selvfølgelig være: Dim arrMitNyeArray(1,1) 'indkøbsvogn
Avatar billede eagleeye Praktikant
01. december 2002 - 23:42 #2
Man kan ikke lave redim på et to dimentionel array se mere her:
http://www.developersdex.com/gurus/code/11.asp

Se også mere her og omkring evt anden løsning:
http://www.aspheute.com/english/20001025.asp
Avatar billede steen Nybegynder
02. december 2002 - 07:04 #3
OK.... men jeg har tidlligere redimmet et 2dm. array... Her er et snit af koden (som virker)

'Nu tjekker vi om varenumret allerede står på vores liste!
    Dim intArrayNummer
    intArrayNummer=Genplacering(Request.QueryString("Num"))
    If intArrayNummer = False Then
        Redim Preserve arrIndkoebsvogn(7,intRaekker+1)
        arrIndkoebsvogn(0,intRaekker+1) = CLng(Request.QueryString("Num"))
        arrIndkoebsvogn(1,intRaekker+1) = Request.QueryString("Navn")
        arrIndkoebsvogn(2,intRaekker+1) = FormatNumber(Request.QueryString("NPris"),2)
        arrIndkoebsvogn(3,intRaekker+1) = FormatNumber(Request.QueryString("DPris"))
        arrIndkoebsvogn(4,intRaekker+1) = Cint(Request.QueryString("Antal"))
        arrIndkoebsvogn(5,intRaekker+1) = FormatNumber(Request.QueryString("Antal")* Request.QueryString("NPris"))
        arrIndkoebsvogn(6,intRaekker+1) = FormatNumber((Request.QueryString("NPris")- Request.QueryString("DPris"))* Request.QueryString("Antal"))
        arrIndkoebsvogn(7,intRaekker+1) = Request.QueryString("Varenummer")
    Else
Avatar billede steen Nybegynder
02. december 2002 - 07:26 #4
Det her virker rent faktisk... :)

<%
Dim arrMitArray(1,2) 'vareliste
arrMitArray(0,0) = "Ged"
arrMitArray(1,0) = "1293"
arrMitArray(0,1) = "Høne"
arrMitArray(1,1) = "142"
arrMitArray(0,2) = "Frø"
arrMitArray(1,2) = "26"

Dim arrMitNyeArray() 'indkøbsvogn
Redim Preserve arrMitNyeArray(1,1)
arrMitNyeArray(0,0) = "Bille"
arrMitNyeArray(1,0) = "73217"
arrMitNyeArray(0,1) = "Giraf"
arrMitNyeArray(1,1) = "1832"


Sub PlacerIIndkoebsvogn(intArrayPlace, ByRef strFrom, ByRef strTo)
    Dim intToPlace
    intToPlace = Ubound(strTo,2) + 1 ' gemmer nummeret på den nye tomme plads
    ReDim Preserve strTo(Ubound(strTo,1),intToPlace) 'opretter ny plads
    For i = 0 To Ubound(strFrom,1) 'placerer alle elementer i rækken
        strTo(i,intToPlace) = strFrom(i,intArrayPlace)
    Next
End Sub

PlacerIIndkoebsvogn 1,arrMitArray,arrMitNyeArray ' kalder sub´en

Response.write arrMitNyeArray(0,2) & " - " & arrMitNyeArray(1,2) ' skulle resultere i "Høne" & "142"
%>
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