norbat Skrevet 18. oktober 2004 Del Skrevet 18. oktober 2004 Hvis man skal lage et prog som fyller en matrise (array) med innhold (ett eller annet) og som skal skrive ut det siste elementet i en msgbox, hvordan kan den koden se ut? (-tror man skal både lage en funksjon ("private function....." og muligens en prosedyre for dette) Lenke til kommentar
Jonas Skrevet 19. oktober 2004 Del Skrevet 19. oktober 2004 (endret) Når jeg bruker matriser, Dim'er jeg alltid en "Antall_matrise". Hver gang du legger til noe i matriser, øker du også "Antall_matrise" med 1+. Etterpå blir det lett å skrive ut alt. Bare lag en for-løkke. 1 to antall_matrise Public Matrise(1 To 9999) As String Public Antall_Matrise As Long edit: Jeg tror det finnes en annen måte, men den husker jeg ikke. Endret 19. oktober 2004 av Jonas Lenke til kommentar
aadnk Skrevet 19. oktober 2004 Del Skrevet 19. oktober 2004 VB.NET støtter ikke lenger andre tall enn 1 i lower bound. VB-teamet konkluderte vistnok med at dette var svært ulogisk, og stridet i mot de fleste programmeringsspråkene. Det var mer hensiktsmessig å ha et universalt grunntall som alle matrisene begynte med. Dessuten kan man også bruke UBound eller [Matrise-navn her].GetLenght til å finne størrelsen på en matrise. Man kan derfor skrive koden som følgende: ' Allokerer en matrise Dim aArray(10) As String ' Endrer størrelsen til 20 ReDim Preserve aArray(20) ' Legg til tekst i det nåværende siste elementet aArray(20) = "Dette er en test" ' Skriver ut dynamisk det siste elementet til en meldningsboks MsgBox(aArray(aArray.GetUpperBound(0))) Jeg tror ikke du trenger å lage en ny funskjon for å prestere dette. Lenke til kommentar
b-urn Skrevet 19. oktober 2004 Del Skrevet 19. oktober 2004 VB.NET støtter ikke lenger andre tall enn 1 i lower bound. Hmm... hva mener du? Vet ikke hvordan det er med din versjon av VB.NET, men min håndterer da vitterlig følgende: Dim int_Test(2) As Integer int_Test(0) = 100 int_Test(1) = 200 int_Test(2) = 300 MsgBox(int_Test(0)) ...eneste ulempen er at Dim int_Test(2) nå betyr.. "opprett en liste med 3 elementer". Lenke til kommentar
aadnk Skrevet 19. oktober 2004 Del Skrevet 19. oktober 2004 ...eneste ulempen er at Dim int_Test(2) nå betyr.. "opprett en liste med 3 elementer". Det var nettopp det jeg mente med setningen. Du kan ikke lenger definere hvilket grunntall tellingen skal begynne med. Følgende setning, som var lovlig i tidligere versjoner, er altså ikke korrekt: Dim aArray(1 To 100) As String Men jeg kan godt si meg ening i Microsofts beslutning. Annet enn grunntallene 1 og 0, ble ikke valgmuligheten i lower-bound benyttet i det hele tatt. Og hvorfor ikke da gå over til det andre programmeringsspråk har brukt i årevis? Annet enn å forvirre nybegynnerene ytterligere, kan jeg egentlig ikke se en nytte i lower-bound. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå