Array Length VB

Array Length VB
Array Length VB

Array length VB

Du möchtest die Array Length in VB, also die Anzahl der Elemente, bzw. die Größe eines Arrays bestimmen?

Die Größe des Arrays ist in vielen Situationen wie z. B. das Durchlaufen mit einer Schleife relevant, lerne in diesem Beitrag, wie Du die Größe herausfindest!

Schaue Dir bei Bedarf doch gerne auch einige andere meiner Visual Basic Beiträge an: (folgen noch).

Was? Keine native Funktion?

Du hast leider richtig gelesen, wir haben in VB keine nativeMöglichkeit, die Length des Arrays abzurufen.

Man kennt es eventuell aus dem .NET Umfeld, dass man einfach „.Length„, oder auch „.Count“ aufrufen kann, hier haben wir allerdings mehr oder weniger Pech.

Daher müssen wir uns wohl oder übel eine eigene Variante bauen, um die Length des Arrays herauszufinden.

Probleme – Array Length VB

Wer schon ein wenig mit Visual Basic gearbeitet hat, wird vermutlich die LBound und UBound Funktionen kennen.

Leider gestaltet sich die zum vermeintlich zum Ziel führende Arbeit damit nicht ganz einfach.

Daher zeige ich Dir hier einmal, wie man eventuell in eine kleine Falle tappen könnte.

Länge mit LBound und UBound erfassen

In diesem Abschnitt erstellen wir ein kleines, mit den beiden Funktionen arbeitendes Beispiel, die Länge des Arrays zu erfassen.

Schauen wir uns dafür einfach mal den folgenden Code an:

Dim arr
arr = Array("First", "Second")
Dim arrLength
arrLength = UBound(arr) - LBound(arr) + 1
MsgBox(arrLength)

Code-Erklärung

Im ersten Schritt kündige ich eine Variable namens „arr“ an und setze im nächsten Schritt den Wert.

Danach deklariere ich eine Variable namens „arrLengthwo wir gleich – oh Wunder – die Length des Arrays speichern werden.

Die Length des Arrays berechnet sich in unserem Beispiel aus dem Rückgabewert der „UBound„-Funktion minus den Rückgabewert der „LBound„-Funktion plus 1.

Ausgabe

Wenn Du Dir dann die Ausgabe der MsgBox ansiehst, wirst Du folgendes Fenster bekommen:

Array Length VB UBound LBound Beispiel
Array Length VB UBound LBound Beispiel

Nun scheint im ersten Moment alles richtig zu sein, jedoch nicht mehr, wenn Du Dir nun folgendes Beispiel ansiehst.

Hier verläuft erstmal alles analog zum Beispiel hier drüber, allerdings erweitern wir die Kapazität des Arrays, ohne einen tatsächlichen Wert in den neuen Index zu stecken.

Nicht ganz zufriedenstellend – Array Length VB

Das Array hat nun also eine theoretische Kapazität von 3 Elementen, jedoch sind nur 2 Elemente darin vorhanden.

Dim arr
arr = Array("First", "Second")
ReDim Preserve arr(2)
Dim arrLength
arrLength = UBound(arr) - LBound(arr) + 1
MsgBox(arrLength)
Array Length VB UBound LBound Beispiel 2
Array Length VB UBound LBound Beispiel 2

Die verbleibende Lösung

Die einzig uns verbleibende Lösung, um die Array-Länge festzustellen ist es, das Array manuell zu durchlaufen und das jeweilige Element auf z. B. „IsEmpty“ zu prüfen:

Dim arr
arr = Array("First", "Second")
ReDim Preserve arr(2)
Dim arrLength
For i = LBound(arr) To UBound(arr)
    If Not IsEmpty(arr(i)) Then
        arrLength = arrLength + 1
    End If
Next
MsgBox(arrLength)

Somit bekommen wir auch in diesem letzten Beispiel, die korrekte Zahl, bzw. Länge 2 heraus.

Je nach Wunsch und Datentyp könnte man die Überprüfen natürlich noch anpassen, bzw. erweitern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert