Avatar billede dkkarpen Nybegynder
27. maj 2002 - 20:03 Der er 7 kommentarer og
1 løsning

Array problem

Hvorfor får jeg subscript out of range når jeg omdefinerer mit array dynamisk???

Dim A1 ()

CONST row = 0
CONST dato = 1
i = 0
        redim A1(i,2)

    SQL = "Select * from artikler where forside = 1 and userlevel >= " & session("usertypeid")
    Set rs = Conn.execute(SQL)
    if rs.eof then
    else
        do while not rs.eof
        A = "<tr><td class=""overskrift""><a href="""
       
        if rs("link") <> "" then
        A = A & rs("link") & """>" & rs("titel") & "</a><br><br></td></tr>"
        else
        A = A & "artikler.asp?mode=vis&artikel=true&kategoriid=" & rs("kategoriid") & "&id=" & rs("artikelid") & """>" & rs("titel") & "</a></td></tr>"
        A = A & "<tr><td>" & rs("teaser") & "<br><br></td></tr>"
        end if
       
       
        A1(i,0) = (A)
        A1(i,1) = (left(rs("oprettet"),8))
        i = i + 1
        redim Preserve A1(i,2)
        A = ""
        rs.movenext
        loop
    end if
Avatar billede erikjacobsen Ekspert
27. maj 2002 - 20:48 #1
i = 1
redim A1(i,2)

retter du bare i starten
Avatar billede erikjacobsen Ekspert
27. maj 2002 - 20:50 #2
Nah, ikke nok. Problmet at at du skal starte med at lave en

  redim A1(1,2)

så har du A1(0,0) og A1(0,1). Så skal du bare have i til at passe.
Prøver du selv? (VB er noget rod....)
Avatar billede dkkarpen Nybegynder
27. maj 2002 - 20:56 #3
Hvad skulle det hjælpe? Det virker i hvert fald ikke.
Avatar billede erikjacobsen Ekspert
27. maj 2002 - 21:05 #4
Nej, jeg siger jo også det ikke er nok.... Vil du selv rode med det
eller skal du have en fix og færdig løsning?
Avatar billede dkkarpen Nybegynder
27. maj 2002 - 21:06 #5
Jeg er helt på bar bund efterhånden så lidt hjælp ville super dejligt ;-)
Avatar billede erikjacobsen Ekspert
27. maj 2002 - 21:35 #6
Jeg tænkte det nok: jeg havde et lille eksempel liggende. Jeg aner ikke
om det kan gøres smartere, men det virker. Data kommer bare fra en
for-løkke her, men det fikser du nemt:

  dim a()
  redim a(2,0)

  for i=0 to 10
  response.write i & " " & ubound(a,2) & "<br>"
    redim preserve a(2,ubound(a,2)+1)
    a(0,i) = i+1
    a(1,i) = i*10
  next

  for i=0 to ubound(a,2)
    response.write a(0,i) & " " & a(1,i) & "<br>"
  next
Avatar billede dkkarpen Nybegynder
27. maj 2002 - 21:50 #7
Ja mærkeligt nok virkede det at bytte om på arrayet ;-) Tak for det.
Avatar billede erikjacobsen Ekspert
27. maj 2002 - 21:52 #8
det er ikke så mærkeligt, for man kan kun sige "preserve" hvis
man ændrer sidste dimension. Sådan er VB/ASP så mærkelig, at man
ikke burde spilde sin tid med det :)
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