Array VB
Inhaltsverzeichnis
Array VB
Du möchtest ein Array in VB verwenden, bzw. verstehen was Arrays sind und wie Sie in Visual Basic funktionieren?
Dann freut es mich, dass Du meinen Beitrag durch deine Recherche über Arrays gefunden hast und wir zusammen durchstarten können!
Was sind Arrays?
Um in erster Linie verstehen zu können was Arrays sind, musst Du erstmal verstehen, welche Notwendigkeiten man ggf. als Entwickler hat.
Ich denke, bzw. nehme es mir mal raus, in den virtuellen Raum zu stellen, dass Du noch relativ am Anfang deiner Visual Basic Erfahrung stehst.
Ein grundsätzliches als Entwickler bestehendes „Problem“ – oder sagen wir eher Aufgabenstellung – ist es, Daten (zwischen)-speichern zu müssen.
Daten zwischenspeichern – Array VB
Stell Dir z. B. vor, dass Du für die Teilnahme an einem Gewinnspiel, das Geburtsdatum von dem Nutzer deines Programmes entgegennehmen musst.
Die Vorgehensweise spielt hier für das Verständnis und im Sinne unseres Beispiels ja erstmal keine Rolle.
Du bekommst also das Geburtsdatum und musst Dieses nun weiter verarbeiten.
Schließlich muss ja auch irgendwie festgestellt und vor allem sichergestellt werden, dass der jeweilige Nutzer alt genug ist!
Wohin damit?
Da wir das eingegebene Datum ja wie geplant für die Altersprüfung weiterverarbeiten wollen, müssen wir es ja irgendwie „ansprechbar“ machen.
Dafür müssen wir das Geburtsdatum zwischenspeichern und dies funktioniert in der Welt der Programmierung unter anderem mit der Hilfe einer Variable.
Das Datum in einer Variable zu speichern könnte wie folgt aussehen:
Dim strBirthday As String = InputBox("Enter your Birthday please!") Dim birthday As Date = CDate(strBirthday)
Was ist aber nun, wenn Du mehrere Geburtsdaten aufnehmen möchtest?
Nicht alles in eine Schublade stecken!
Was wie ein gut gemeinter Rat im Sinne eines Vorurteils klingt, ist eher ein häufiges Problem in der Entwicklung – besonders als Anfänger.
Hier drüber hast Du erfahren, wie Du ein Datum in eine Variable zwischenspeichern, bzw. entgegennehmen kannst.
Nun kann man dort leider nicht mehrere Daten (Plural Datum) zwischenspeichern und genau hier kommen Arrays (Datenfelder/Felder) ins Spiel.
In Anlehnung an den Titel dieses Abschnitts und des Titelbildes, können wir uns bei Variablen ja praktisch eine Art Schublade vorstellen.
Wir legen etwas rein, wenn wir etwas verstauen müssen, jedoch können wir uns diesen „Wert“ der dort drin liegt, auch genauso gut wieder herausholen – also abrufen.
Der falsche Ansatz – Array VB
Unter den Beispielen, die man so im Netz findet, sind mit Sicherheit auch einige schlechtere Varianten dabei.
Hier kann ich Dir z. B. eine dieser schlechteren Varianten präsentieren:
Dim date1 As Date Dim date2 As Date Dim date3 As Date
Das ist eine der gängigen schlechten Varianten, Welche ich regelmäßig in vielen Codes finde.
Statt geeignete Datentypen an gewissen Stellen zu verwenden – wovon Du Einen gleich gezeigt bekommen wirst –, werden solche Experimente produziert.
Ich denke das größte Problem des „Durchnummerieren-Beispiels“ ist Jenes, dass man es nicht auf einer gemütlichen Art durchiterieren kann.
Dann eben einen Schrank – Array VB
Im Gegensatz zur Schublade, Welche hier eine Analogie zur Variable darstellt, können wir statt der Schublade einfach einen ganzen Schrank nehmen.
Dafür verwenden wir z. B. den Array–Datentyp in Visual Basic (und auch in vielen anderen Programmiersprachen).
Nun werfen wir einen Blick darauf, wie man ein VB Array erstellen und anschließend verwenden kann.
Deklarationen aus dem Netz
Im Netz findet man häufig Beispiele wie das Folgende, wo ich persönlich denke, dass es anderweitig ein wenig besser wäre.
Dim birthdays(2) As Date
Damit würde man letztendlich sagen: „Hey, es gibt hier ein Array namens birthdays, Welches 3 (!) Daten speichern kann“.
Für mich passt die vollkommen richtige Beschreibung allerdings nicht zur Schreibweise, denn für gewöhnlich kann man normale „Dim-Statements“ ja wie folgt übersetzen:
Falsche Formulierung?
"Lege die Variable namens XY fest, als Ding vom Typ Z", oder kürzer "Lege XY fest als Z".
Die obige Anweisung würde ich allerdings fälschlicherweise als das hier interpretieren:
"Lege birthdays von der Größe X als Datum fest".
Das ist für mich durchaus unlogisch, da wir die Variable nicht als Datum, sondern als Array von Daten (Plural Datum) deklarieren möchten.
Richtige Formulierung
Ich persönlich bevorzuge den folgenden Stil – wie gesagt ist es nur meine persönliche Meinung:
Dim birthdays As Date(2)
Das liest sich für mich dann korrekterweise als:
"Lege XY als Array von 3 Dates fest".
Den Schrank (Array) befüllen – VB Array
Nun zeige ich Dir, wie Du das vorhin definierte Array von Dates mit Daten bestücken kannst.
Beachte dabei, dass Arrays bei 0 – mit dem sogenannten Index – anfangen!
Initialisierung
Der Einfachheit halber – um zig mal CDate zu vermeiden – verwende ich hier einfache Zahlen, um das Array direkt mit Werten zu versehen, also zu initialisieren.
Dim birthdays As Integer() = {10, 20, 1}
Manuelle Index-Auswahl
Hier verwenden wir einen „Manuellen-Index„, damit meine ich, dass wir den Index als Zahl selbst angeben.
Dim birthdays As Date(2) birthdays(0) = CDate("12.12.2025") birthdays(1) = CDate("13.12.2025") birthdays(2) = CDate("14.12.2025")
In beiden Varianten definieren wir das Array mit einer Dimension / einer Grenze von 3 Elementen.
Als Schleife
Hier durchlaufen wir das Array und könnten dann in jedem Durchlauf einen Wert für das jeweilige Element setzen.
For i = LBound(birthdays) To UBound(birthdays) birthdays(i) = ' the value! Next
Elemente nachträglich hinzufügen
Nun kommen wir vermutlich nah an den Punkt, wo Du Dich fragst, wie Du einem Array nachträglich noch Elemente hinzufügen kannst.
Um zur Demonstration zu gehen, definieren wir hier mal ein Integer-Array, um auch hier die zig fache Verwendung von CDate zu vermeiden und es so zu verkürzen.
Wir initialisieren z. B. ein Array mit 2 vorhandenen Werten.
Dann verwenden wir die ReDim-Anweisung um den Speicherplatz für die Array-Variable neu zu definieren.
In Kombination zu ReDim verwenden wir auch den Preserve-Modifizierer, um die vorhandenen Elemente im Array zu erhalten.
Beachte dabei allerdings, dass auch in der ReDim–Zeile die indexbasierte Zahl in Klammern angegeben werden muss!
Dim numbers As Integer() = {3,5} ReDim Preserve numbers(2) numbers(2) = 7
Nach der Ausführung unseres Codes befinden sich die Zahlen 3, 5 und 7 im Array.
Downloads
Für dieses Beispiel gibt es dieses Mal keinen Download, da es sich um zu wenig Code dafür handelt – denke ich.