VB 2010 Express - Array-Länge ermitteln ?

Hallo
Ich bin Anfänger in VB
und möchte die Länge eines Arrays ermitteln
bin aber zu blöd dazu
Wenn man die Array-Elemte automatisch zu Laufzeit generiert,
ist es notwendig die Länge zu ermitteln.
Bei nachstehendem Code erhalte ich die Zahl 12 Es sind aber nur 3 Elemente mit je 2 Elementen in der 2. Dimension
Ich benötige in meinem Fall aber nur die Menge der 1. Dimension also 3

(Was wird das werden, wenn mir so eine einfache Sache schon Probleme macht)

Dim aText(3, 2) As String
aText(0, 0) = "aText 0-0 "
aText(0, 1) = "aText 0-1 "
aText(1, 0) = "aText 1-0 "
aText(1, 1) = "aText 1-1 "
aText(2, 0) = "aText 2-0 "
aText(2, 1) = "aText 2-1 "

For i As Integer = 0 To aText.Length
'Ausgaben
'Fehlermeldung weil es die Elemente (12) nicht gibt
Next i

Danke für Eure Hilfe
Christian

Hallo Christian,

die 12 stimmt ja insofern, da es in dem Array 12 Elemente gibt (3x4).
Wenn du die Werte für die einzelnen Dimensionen haben möchtest, gibt es die Funktion GetUpperBound(Dimension). Diese müsste dann zurückgeben:
GetUpperBound(0) = 2
GetUpperBound(1) = 3
Diese kannst du dann in einer Schleife verwenden:

For i As Integer = 0 To arr.GetUpperBound(0)
 For j As Integer = 0 To arr.GetUpperBound(1)
 TuEtwasMit(arr(i,j))
 Next
Next

Nico

Hallo!

Arrays haben die Methode GetLength(dimension), über die Du die Anzahl der Elemente in der gewünschten Dimension des Arrays abfragen kannst.
aText.GetLength(0) liefert Dir also 3 und aText.GetLength(1) liefert 2.

Gruß,
Martin

Hallo!

Arrays haben die Methode GetLength(dimension), über die
Du die Anzahl der Elemente in der gewünschten Dimension des
Arrays abfragen kannst.
aText.GetLength(0) liefert Dir also 3 und aText.GetLength(1)
liefert 2.

Danke für die Hilfe
Ich hab jetzt festestellt, dass

aText.GetLength(0)

die Länge 4 liefert
und

aText.GetLength(1)

die Länge 3

Hab mir das anzeigen lassen mit

 MessageBox.Show("Länge 1. Dim: " & aText.GetLength(0) & vbCrLf
 & "Länge 2. Dim: " & aText.GetLength(1), "Elemente")

Wenn mans weiss, müsste man halt

aText.GetLength(0)-1

schreiben

Vielen Dank
Christian

Danke für die Hilfe.
hat alles funktioniert

Jetzt hab ich noch gleich Anschlussfragen:

  1. Frage
    Wenn der Inhalt eines Arrayelementes z.B.

    atext(1,1)

ein String ist: Wie kann ich die Länge des Strings ermitteln?

Wenn er zu lang ist müsste ich was machen damit!

  1. Frage
    Gibt es für komfortable Druckausgaben mit Preview-Funktion und Seitenhändling (Ohne Reportgenerator) ein Tool. Ich hab im Netz schon gesucht, jedoch noch nichts kostenloses (Bin in der Lernphase) gefunden.
    Ich hab zwar ein Buch in dem alle nur erdenklichen Möglichkeiten für die Abfrage von Druckereinstellungen und Werten aufgezeigt werden, jedoch alle Beispiele haben immer auf einer Seite Platz. Das ist in der Praxis keine Lösung.

Wie druckt ihr eure Berichte?
Daten aus Tabellen oder aus Arrays

Oder soll ich das Thema unter einem neuen Punkt veröffentlichen?

Für Ratschläge dankbar
Christian

Hallo,

die String-Länge kannst du mit atext(1, 1).Length ermitteln.
Zu der Drucksache kann ich dir nicht viel sagen. Ein neues Thema ist dann vielleicht doch ratsam.

Nico