Avatar billede oleelo Nybegynder
21. januar 2009 - 21:38 Der er 7 kommentarer og
1 løsning

fejl dynamisk to-dimension array

Hej
Jeg har forsøgt mig med en to-dimension array med får probleme når jeg vil ændre den "første dimension" og vil bibeholde mine data. Hvad gør jeg forkert.

I min test kode er det sidste linje som giver fejl

Sub TestToDim()
Dim Arr() As Variant
MaxA = 5
MaxB = 6
ReDim Arr(MaxA, MaxB)

Arr(4, 1) = 99 'indlæser værdi
Arr(1, 2) = 59 '


For x = 0 To UBound(Arr, 1) 'MaxA
    If Arr(x, 1) <> 0 Then
            MsgBox "" & Arr(x, 1)
    End If
Next x

ReDim Preserve Arr(5, UBound(Arr, 2) + 1) 'OK
ReDim Preserve Arr(5, 11) 'OK
ReDim Arr(6, 11)  ' ok

ReDim Preserve Arr(7, 11)  'FEJL Ikke ok fordi??????

End Sub
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 21:49 #1
Man kan ikke redimme den første dimension - derfor.
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 21:49 #2
Man kan ikke redimme den første dimension **med preserve** - derfor.
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 21:54 #3
Og din løsning må derfor være at beregne den første dimension, og evt den anden, inden du laver dit array. Eller lave dem rigeligt store fra starten. Det er også håbløst langsomt med "redim preserve" på store arrays.
Avatar billede oleelo Nybegynder
21. januar 2009 - 21:55 #4
Hej erikjacobsen
Er der en logisk grund til det ? eller er det bare sådan.
oleelo
Avatar billede oleelo Nybegynder
21. januar 2009 - 21:59 #5
Hej erikjacobsen
og tak for svar ,jeg glemte lige , send et svar :-)
mht til løsning så vil jeg bestemme mine dimentioner før jeg ReDim
mvh oleelo
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 22:08 #6
Ja, der er givetvis en forklaring mht hvordan den slags arrays er lavet. Men man skal heller ikke forvente så meget af oldgammel teknologi som ASP og VBScript.

Jeg samler slet ikke på point, tak. Svar selv, og accepter dit eget svar.
Avatar billede oleelo Nybegynder
21. januar 2009 - 22:59 #7
Ok jeg lukker selv
men tak for svaret erikjacobsen
Avatar billede erikjacobsen Ekspert
21. januar 2009 - 23:02 #8
...og en anden oplagt mulighed: bytte om på de to dimensioner, hvis det kun er den første, der skal redimmes...
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