badfsaadkl
Goto Top

Mehrdimensionales Array Visual Basic

Möchte aus einem Array mehrere Dimensionen auslesen und verwenden

Hallo Zusammen,

gleich vorneweg, Arrays sind net so mein Thema...
bin da net wirklich fit...

ich habe folgenden Code als "Eingabe" :

Dim orte() As String = {"Berlin", "Hamburg", "München"}  

        Dim temperaturen(,) As SByte = {{2, 3, 1}, {3, 6, 4}, {6, 8, 10}, {10, 12, 13}, {14, 15, 15}, {19, 18, 19}, {18, 16, 20}, {23, 24, 25}, {25, 22, 22}, {15, 14, 15}, {10, 11, 13}, {9, 8, 7}}

        Dim iOrt As Byte
        Dim iMonat As Byte

Die Variable temperaturen(,) ist ja soweit wie ich das verstehe ein mehrdimensionaler Array.
wie kann ich nun die Werte aus diesem Array auslesen ???

als Ziel brauch ich eigentlich jeden wert und jede klammer als Array...

Muß jedem Wert ín den eckigen Klammer, einem Ort zuordnen.
und das ganze so oft, wie eckige klammern vorhanden sind (12mal)

Sprich:

KlammerBerlinHamburgMünchen
1.231
2.364
3.6810
usw...

Content-ID: 151054

Url: https://administrator.de/contentid/151054

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

Berrnd
Berrnd 14.09.2010 um 21:01:49 Uhr
Goto Top
Hi,

abfrage/setzen eines Wertes erfolgt einfach "durch kommagetrenntes Aufführen der Index-Zahl" (wusste grad nicht, wie ich's anders ausdrücken sollte ;)):
'Zum Beispiel  
temperaturen(3, 2) = 43
Gruß
Bernd
BadFsaadKl
BadFsaadKl 14.09.2010 um 21:28:57 Uhr
Goto Top
Moin,

wie was sagen mir die werte im Array, welche durch die klammer getrennt werden ???

war wäre in deinem beispiel die 3 und was die 2 ???

Greetinngs

Michel
bastla
bastla 14.09.2010 um 21:50:54 Uhr
Goto Top
Hallo BadFsaadKl!
war wäre in deinem beispiel die 3 und was die 2 ???
Der Grund dafür, dass in der 4. Zeile des tabellarisch dargestellten Arrays die Zahl in der 3. Spalte (also entsprechend der grundsätzlichen Zuordnung der Wert für "April in München") auf 43 gesetzt wird (derzeit hat sie den Wert 13) - wenn tatsächlich abgefragt werden soll, müsste das Array-Element rechts vom Gleichheitszeichen aufscheinen, also etwa:
Dim EinWert As SByte = temperaturen(3, 2)
oder auch
MsgBox(CStr(temperaturen(3, 2)) & " Grad in " & orte(2) & " im Monat " & CStr(3 + 1))
wobei natürlich der eigentliche Sinn darin liegt, die Indizes (3 und 2) nicht als Konstante, sondern als Variable zu verwenden ...

Gezählt wird bei der Indizierung übrigens, wie Dir sicher schon aufgefallen ist, von 0 beginnend - daher bedeutet Deine Zuweisung
 Dim temperaturen(,) As SByte = {{2, 3, 1}, {3, 6, 4}, ..., {9, 8, 7}}
dass danach

temperaturen(0,0) den Wert 2,
temperaturen(0,1) den Wert 3,
temperaturen(0,2) den Wert 1,
temperaturen(1,0) den Wert 3,
temperaturen(1,1) den Wert 6,
temperaturen(1,2) den Wert 4, etc

hat - das letzte Element des 12 *3 - Arrays ist demnach

temperaturen(11,2) mit dem Wert 7.

Grüße
bastla

P.S.: Noch eine grundsätzliche Anmerkung: Es wäre sinnvoll, die verwendete VB-Version anzuführen ...