VB String Array
Inhaltsverzeichnis
VB String Array
Du bist bei deiner „VB String Array„-Recherche auf meine Seite gestoßen und möchtest wissen, wie man ein String–Array in Visual Basic erstellen kann?
Eventuell weißt Du auch bereits, wie man ein String–Array erstellt, Dir fehlt aber vielleicht der Feinschliff, oder Du hättest gerne mehr Tipps?
Vielleicht interessierst Du Dich noch für die folgenden Beiträge: Arrays allgemein.
Wiederholung Arrays
Wie Du ggf. schon in meinem anderen Beitrag, oder durch Dein Vorwissen weißt, speichern Arrays mehrere Daten auf einmal.
Vergleichbar ist das Array mit einer Art Liste, Welche gezählt, wie eine Variable veränderbar und auch iterierbar ist.
Schon in meinem anderen Beitrag habe ich auch darauf hingewiesen, dass es einige Kniffe wie z. B. in der Deklarationsweise gibt.
Mögliche Szenarien
Wenn man an ein String-Array denkt, bzw. die Notwendigkeit dazu hat, verbindet man das eventuell mit folgenden Szenarien:
- Man könnte z. B. Rechnungsnummern (Welche durchaus auch Buchstaben enthalten können) durchlaufen wollen
- Es ist die Notwendigkeit einer Auflistung von Namen vorhanden
- Ein String soll zum Beispiel in seine Bestandteile zerlegt und in einem Array gespeichert werden
- uvm.
Auflistung von Namen – VB String Array
Schauen wir uns für das Beispiel mal ein konkretes Szenario an, dazu speichern wir verschiedene Vornamen in ein String-Array.
Zuerst sehen wir uns dazu die Deklaration, bzw. die Initialisierung eines String-Arrays in Visual Basic an.
Anschließend gehen wir weitere Operationen am Array wie das Hinzufügen weiterer Vornamen an.
Deklaration eines String-Arrays
Wie gleich folgend, könnte die Deklaration eines String-Arrays aussehen.
Das bedeutet, dass das Array nicht bereits von vornherein seine Speicherkapazität festgelegt bekommt.
Übersetzen könnte man die Zeile als: „Lege die Variable firstNames als String-Array fest.“
Dim firstNames As String()
Initialisierung eines String-Arrays
Nun folgt die Initialisierung eines String-Arrays.
Das bedeutet, wir deklarieren ebenfalls die Variable „firstNames“ und weisen Ihr initial Werte zu.
Der höchste Index des Arrays ist nun somit der Eintrag namens „Cathrine“ mit dem Wert 2.
Dim firstNames As String() = {"John", "Max", "Cathrine"}
Hinzufügen eines Elements in VB String Array
Nachdem das Array vorher entweder mit dem einem, oder dem Anderen Weg definiert wurde, kommt man vermutlich auch an den Punkt, weitere Elemente hinzufügen zu wollen.
Dafür müssen wir dem Array, was andernfalls einen Index-Fehler werfen würde sagen, dass dessen Kapazität mit Hilfe der ReDim-Anweisung neu definiert wird.
Zusätzlich verwenden wir das „Preserve„-Schlüsselwort, um die vorherigen Einträge zu behalten.
ReDim Preserve firstNames(3)
Beachte hierbei, dass die Zahl in der Klammer – also die Dimension / Kapazität – auch hier in der Form eines Indexes (also beginnend bei 0) angegeben werden muss.
Danach können wir einen, oder mehrere weitere Namen in das String-Array hinzufügen:
firstNames(3) = "Michael"
Entfernen des letzten Elements
Um bei diesem String-Array z. B. den letzten Eintrag wieder entfernen zu können, können wir ebenfalls die „ReDim & Preserve“-Kombination verwenden.
Hier zeige ich kurz eine Variante, wo ich die Zahl praktisch fest in den Code schreibe, nicht so prickelnd, aber funktionierend.
ReDim Preserve firstNames(2)
Etwas besser wäre es natürlich, wenn das Ganze dynamisch funktionieren würde, dazu können wir die Obergrenze einfach ausmachen und 1 davon abziehen.
ReDim Preserve firstNames(UBound(firstNames) - 1)
Beachte hier, dass Du ggf. mit einer If-Abfrage abfangen musst, dass nicht nachher -1 bei der Berechnung rumkommt.
Entfernen des ersten Elements
Hier noch ein kleines Beispiel, wie man statt dem letzten, das erste Element des String-Arrays entfernen kann.
For i = 1 To UBound(firstNames) firstNames(i - 1) = firstNames(i) Next i ReDim Preserve firstNames(UBound(firstNames) - 1)
Zuerst iterieren wir dafür beginnend bei 1 zum „Upper-Bound„, also der oberen „Index-Grenze“ des Arrays.
In jedem Durchlauf der For-Schleife setzen wir an die jeweilige Index-Position „i-1“, den Wert der hinter des aktuellen i-Indexes steckt.
Anschließend korrigieren wir die Kapazität des Arrays durch die bekannte ReDim-Preserve Variante mit der UBound–Funktion.