Gå til innhold

[Løst]Skrive ut det siste element (vb.net)


Anbefalte innlegg

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
Videoannonse
Annonse

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 av Jonas
Lenke til kommentar

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
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
...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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...