<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>feld Archive - Robert Skibbe</title>
	<atom:link href="https://robbelroot.de/blog/tag/feld/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>alias RobbelRoot – Freelance Full Stack Developer .NET</description>
	<lastBuildDate>Sat, 17 Jul 2021 07:37:20 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://robbelroot.de/wp-content/uploads/2020/12/cropped-favicon-32x32.png</url>
	<title>feld Archive - Robert Skibbe</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Array Length VB</title>
		<link>https://robbelroot.de/blog/array-length-vb/</link>
					<comments>https://robbelroot.de/blog/array-length-vb/#respond</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Sat, 17 Jul 2021 07:37:20 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Basic Problemlösungen]]></category>
		<category><![CDATA[anzahl]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[datenfeld]]></category>
		<category><![CDATA[datenfelder]]></category>
		<category><![CDATA[durchlaufen]]></category>
		<category><![CDATA[elemente]]></category>
		<category><![CDATA[enumerieren]]></category>
		<category><![CDATA[feld]]></category>
		<category><![CDATA[felder]]></category>
		<category><![CDATA[größe]]></category>
		<category><![CDATA[kapazität]]></category>
		<category><![CDATA[länge]]></category>
		<category><![CDATA[length]]></category>
		<category><![CDATA[schleife]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vb5]]></category>
		<category><![CDATA[vb6]]></category>
		<category><![CDATA[visual]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[zählen]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=4407</guid>

					<description><![CDATA[<p>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 &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/array-length-vb/">Array Length VB</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB.png"><img fetchpriority="high" decoding="async" width="1024" height="536" src="https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-1024x536.png" alt="Array Length VB" class="wp-image-4409" title="Array Length VB" srcset="https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-1024x536.png 1024w, https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-300x157.png 300w, https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-768x402.png 768w, https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-700x366.png 700w, https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-332x174.png 332w, https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption>Array Length VB</figcaption></figure>






<h2 class="wp-block-heading">Array length VB</h2>



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



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



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



<h2 class="wp-block-heading">Was? Keine native Funktion?</h2>



<p>Du hast leider <strong>richtig gelesen</strong>, wir <strong>haben </strong>in VB <strong>keine </strong>&#8222;<strong>native</strong>&#8220; <strong>Möglichkeit</strong>, die Length des Arrays abzurufen.</p>



<p>Man <strong>kennt </strong>es eventuell <strong>aus </strong>dem .NET <strong>Umfeld</strong>, dass man <strong>einfach </strong>&#8222;.<strong>Length</strong>&#8222;, oder auch &#8222;.<strong>Count</strong>&#8220; aufrufen kann, <strong>hier </strong>haben wir <strong>allerdings </strong>mehr oder weniger <strong>Pech</strong>.</p>



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



<h2 class="wp-block-heading">Probleme – Array Length VB</h2>



<p><strong>Wer </strong>schon ein wenig <strong>mit Visual Basic</strong> <strong>gearbeitet </strong>hat, <strong>wird </strong>vermutlich die <a href="https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/lbound-function"><strong>LBound</strong></a> und <a href="https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/ubound-function"><strong>UBound</strong></a> Funktionen <strong>kennen</strong>.</p>



<p><strong>Leider gestaltet </strong>sich die zum vermeintlich zum Ziel führende <strong>Arbeit </strong>damit <strong>nicht ganz </strong>einfach.</p>



<p>Daher <strong>zeige </strong>ich Dir hier einmal, <strong>wie </strong>man eventuell in eine kleine <strong>Falle </strong>tappen <strong>könnte</strong>.</p>



<h2 class="wp-block-heading">Länge mit LBound und UBound erfassen</h2>



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



<p><strong>Schauen </strong>wir uns dafür einfach mal den <strong>folgenden Code </strong>an:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim arr
arr = Array("First", "Second")
Dim arrLength
arrLength = UBound(arr) - LBound(arr) + 1
MsgBox(arrLength)</pre>



<h3 class="wp-block-heading">Code-Erklärung</h3>



<p>Im <strong>ersten Schritt </strong>kündige ich eine <strong>Variable </strong>namens &#8222;<strong>arr</strong>&#8220; an und setze im <strong>nächsten Schritt</strong> den <strong>Wert</strong>.</p>



<p>Danach <strong>deklariere </strong>ich eine <strong>Variable </strong>namens &#8222;<strong>arrLength</strong>&#8220; <strong>wo </strong>wir gleich – oh Wunder – die <strong>Length des Arrays </strong>speichern werden.</p>



<p>Die <strong>Length des Arrays berechnet </strong>sich in unserem Beispiel <strong>aus </strong>dem <strong>Rückgabewert </strong>der &#8222;<strong>UBound</strong>&#8222;-Funktion <strong>minus </strong>den <strong>Rückgabewert </strong>der &#8222;<strong>LBound</strong>&#8222;-Funktion <strong>plus 1</strong>.</p>



<h3 class="wp-block-heading">Ausgabe</h3>



<p><strong>Wenn </strong>Du Dir dann die <strong>Ausgabe </strong>der <strong><a href="https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/msgbox-function" target="_blank" rel="noreferrer noopener">MsgBox</a></strong> ansiehst, wirst Du <strong>folgendes Fenster </strong>bekommen:</p>



<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-UBound-LBound-Beispiel.png"><img decoding="async" width="129" height="137" src="https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-UBound-LBound-Beispiel.png" alt="Array Length VB UBound LBound Beispiel" class="wp-image-4418" title="Array Length VB UBound LBound Beispiel"/></a><figcaption>Array Length VB UBound LBound Beispiel</figcaption></figure>



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



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



<h3 class="wp-block-heading">Nicht ganz zufriedenstellend – Array Length VB</h3>



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



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim arr
arr = Array("First", "Second")
ReDim Preserve arr(2)
Dim arrLength
arrLength = UBound(arr) - LBound(arr) + 1
MsgBox(arrLength)</pre>



<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-UBound-LBound-Beispiel-2.png"><img decoding="async" width="128" height="137" src="https://robbelroot.de/wp-content/uploads/2021/07/Array-Length-VB-UBound-LBound-Beispiel-2.png" alt="Array Length VB UBound LBound Beispiel 2" class="wp-image-4425" title="Array Length VB UBound LBound Beispiel 2"/></a><figcaption>Array Length VB UBound LBound Beispiel 2</figcaption></figure>



<h2 class="wp-block-heading">Die verbleibende Lösung</h2>



<p>Die <strong>einzig </strong>uns <strong>verbleibende Lösung</strong>, um die <strong>Array-Länge</strong> festzustellen ist es, das <strong>Array manuell </strong>zu <strong>durchlaufen und </strong>das jeweilige <strong>Element </strong>auf z. B. &#8222;IsEmpty&#8220; zu <strong>prüfen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">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)</pre>



<p>Somit <strong>bekommen</strong> wir auch in diesem letzten Beispiel, die <strong>korrekte Zahl</strong>, bzw. <strong>Länge 2 </strong>heraus.</p>



<p>Je <strong>nach Wunsch und Datentyp könnte </strong>man die <strong>Überprüfen </strong>natürlich noch <strong>anpassen</strong>, bzw. erweitern.</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/array-length-vb/">Array Length VB</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/array-length-vb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excel VB Array</title>
		<link>https://robbelroot.de/blog/excel-vb-array/</link>
					<comments>https://robbelroot.de/blog/excel-vb-array/#respond</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Sat, 17 Jul 2021 05:27:11 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic for Applications]]></category>
		<category><![CDATA[Visual Basic for Applications lernen]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[arraylist]]></category>
		<category><![CDATA[datenfeld]]></category>
		<category><![CDATA[datenfelder]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[feld]]></category>
		<category><![CDATA[felder]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[kalkulation]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[listen]]></category>
		<category><![CDATA[lotto]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[office]]></category>
		<category><![CDATA[spiel]]></category>
		<category><![CDATA[super6]]></category>
		<category><![CDATA[tabelle]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[visual basic for applications]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=4364</guid>

					<description><![CDATA[<p>Excel VB Array Du möchtest mit dem Excel VB Array arbeiten und lernen, bzw. verstehen wie das Array funktioniert? Dann lege jetzt in meinem heutigen Beitrag los und wende das Array anschließend erfolgreich in Excel VB an! Vielleicht hast Du auch noch an anderen Beiträgen Interesse: Email senden, Tastendruck simulieren, &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/excel-vb-array/">Excel VB Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array.png"><img loading="lazy" decoding="async" width="1024" height="536" src="https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array-1024x536.png" alt="Excel VB Array" class="wp-image-4371" title="Excel VB Array" srcset="https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array-1024x536.png 1024w, https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array-300x157.png 300w, https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array-768x402.png 768w, https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array-700x366.png 700w, https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array-332x174.png 332w, https://robbelroot.de/wp-content/uploads/2021/07/Excel-VB-Array.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>Excel VB Array</figcaption></figure>






<h2 class="wp-block-heading">Excel VB Array</h2>



<p>Du <strong>möchtest </strong>mit dem <strong>Excel VB Array</strong> arbeiten und lernen, bzw. <strong>verstehen wie </strong>das Array <strong>funktioniert</strong>?</p>



<p>Dann <strong>lege </strong>jetzt in meinem heutigen Beitrag <strong>los </strong>und <strong>wende </strong>das <strong>Array anschließend </strong>erfolgreich in Excel VB <strong>an</strong>!</p>



<p><strong>Vielleicht </strong>hast Du auch noch an <strong>anderen Beiträgen </strong>Interesse: <strong><a href="/blog/vbscript-email-senden" target="_blank" rel="noreferrer noopener">Email senden</a></strong>, <strong><a href="/blog/vbs-send-key" target="_blank" rel="noreferrer noopener">Tastendruck simulieren</a></strong>, <strong><a href="/blog/vbscript-select-case" target="_blank" rel="noreferrer noopener">Select Case</a></strong>.</p>



<h2 class="wp-block-heading">Dieser Weg.. zum Array</h2>



<p>Ein <strong>Array </strong>ist erstmals vielleicht <strong>nicht </strong>der <strong>vorherrschende Sinnesgedanke</strong>, <strong>wenn </strong>man tatsächlich das <strong>erste Mal </strong>auf Diese <strong>stolpert</strong>.</p>



<p>Ich <strong>denke</strong>, dass es <strong>einfach </strong>nur eine <strong>Weiterentwicklung </strong>aus Not heraus ist, <strong>weil </strong>man an die <strong>Grenzen </strong>der <strong>bisherigen Werkzeuge </strong>gestoßen ist.</p>



<p><strong>Sobald man versteht</strong>, dass <strong>Variablen </strong>nur <strong>einen Wert </strong>speichern können, wird man durch <strong>Suchen wie</strong>: &#8222;<strong>Mehrere Strings</strong> zwischenspeichern&#8220;, &#8222;<strong>Integer</strong> durchlaufen&#8220;, etc. irgendwann <strong>auf Arrays stoßen</strong>.</p>



<h2 class="wp-block-heading">Multiple Zahlenwerte speichern – Excel VB Array</h2>



<p><strong>Stellen wir </strong>uns an dieser Stelle mal eine gute alte <strong>Lottospiel </strong>Runde vor.</p>



<p>Ich <strong>empfinde </strong>es so für unser Beispiel <strong>wesentlich einfacher</strong>, <strong>da </strong>man sich so etwas <strong>Konkretes </strong>vorstellen <strong>und </strong>damit <strong>besser arbeiten </strong>kann.</p>



<p>Bei unserem kleinen <strong>Lotto-Versuch</strong> dachte ich an das <strong>einfache </strong>&#8222;<strong>Super 6</strong>&#8222;-<strong>Spiel</strong>, wo wir den Nutzer <strong>6 Zahlen zwischen 1 und 9</strong> aussuchen lassen.</p>



<h2 class="wp-block-heading">Karte ziehen</h2>



<p><strong>Bevor </strong>wir mit unserer <strong>kleinen Partie </strong>beginnen können, müssen wir <strong>überlegen</strong>, <strong>wie </strong>der Nutzer eine <strong>Zahl wählen </strong>kann <strong>und </strong>wie wir Diese dann <strong>in </strong>ein <strong>Array </strong>bekommen.</p>



<p><strong>Ich </strong>denke hier <strong>würde </strong>sich eine <strong>InputBox</strong> mit &#8222;Ja/Nein&#8220; durchaus <strong>anbieten</strong>, daher <strong>verwenden </strong>wir <strong>Diese</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim number
number = InputBox("Enter your number please!")</pre>



<p>Da wir <strong>nun eine Zahl </strong>der 6 Zahlen für unser Lotto erhalten haben, wäre vermutlich der nächste Gedanke, <strong>wie </strong>man die Nummer nun <strong>in </strong>ein <strong>Array</strong> <strong>speichert</strong>.</p>



<h2 class="wp-block-heading">6 Zahlen, ein Array – Excel VB Array</h2>



<p>Im <strong>obigen, Beispiel </strong>konntest Du sehen, <strong>wie </strong>Du eine <strong>Zahl für </strong>unser <strong>Lottospiel</strong> in eine <strong>Variable</strong> legen kannst.</p>



<p>Eine <strong>Variable </strong>ist im <strong>ersten Sinne </strong>dazu da, <strong>einen Wert </strong>zu speichern, <strong>mehr </strong>kann Sie auch <strong>nicht </strong>aufnehmen.</p>



<p><strong>Auch wenn </strong>Dieser Wert z. B. <strong>ein Objekt</strong> einer eigenen <strong>Klasse</strong> ist passt in eine <strong>Variable nur Eines </strong>davon.</p>



<p>Oft hat man als Neuling ein <strong>Problem</strong>, wenn man das erste Mal statt eines Datenelements, <strong>Mehrere zwischenspeichern </strong>soll.</p>



<p><strong>Für gewöhnlich </strong>hat man am Anfang seine <strong>Probleme </strong>damit, <strong>mehrere Daten speichern </strong>zu müssen, oder zu wollen.</p>



<p>Nun ist der <strong>beste Zeitpunkt </strong>die <strong>Excel VB Arrays</strong> ins – im wahrsten Sinne des Wortes – Spiel kommen zu lassen.</p>



<h2 class="wp-block-heading">So nicht!</h2>



<p>Beim <strong>Arbeiten </strong>mit <strong>Quellcode </strong>und den dort <strong>auftretenden Problemen </strong>kommt man immer wieder zur Recherche nach diversen Themen.</p>



<p><strong>Aller Probleme </strong>nach gibt es auch sehr <strong>viele nicht </strong>so <strong>prickelnde Beispiele</strong>, ich denke das <strong>Folgende </strong>dürfte für unser Beispiel <strong>passen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim number1 As Integer
Dim number2 As Integer
Dim number3 As Integer
Dim number4 As Integer
Dim number5 As Integer
Dim number6 As Integer</pre>



<p><strong>Sehr oft</strong> habe ich diese blöde Variante bei den verschiedensten &#8222;Programmierern&#8220; <strong>im Quellcode </strong>gefunden, natürlich speziell <strong>bei Grünschnäbeln #nooffense!</strong></p>



<p><strong>Auch wenn </strong>man diese <strong>Herangehensweise </strong>natürlich <strong>häufiger bei </strong>noch <strong>nicht </strong>so <strong>erfahrenen Entwicklern </strong>sieht, habe ich es <strong>auch </strong>schon <strong>bei Fortgeschrittenen </strong>gesehen.</p>



<p><strong>Dieser Stil</strong> wird häufig wegen der <strong>augenscheinlichen Einfachheit</strong>, statt passender <strong>Datentypen verwendet</strong>.</p>



<p>Ich denke das <strong>hauptsächliche Problem wird </strong>Dir <strong>bewusst</strong>, <strong>wenn </strong>ich Dich <strong>bitten </strong>würde, die <strong>Variablen </strong>zu <strong>durchlaufen</strong>, <strong>denn so </strong>ist das <strong>schwierig</strong>.</p>



<h2 class="wp-block-heading">Warum ein Etui statt eines Kartons? – Excel VB Array</h2>



<p><strong>Wieso</strong> sollte man eine <strong>Lottokugel </strong>in ein <strong>einzelnes Etui </strong>stecken, <strong>wenn alle Kugeln direkt in </strong>einem kleinen<strong> Karton </strong>gemeinsam untergebracht werden könnten?</p>



<p><strong>Der Karton</strong> dient hier als Analogie zum <strong>Excel VB Array</strong>, wo man eben <strong>mehrere Elemente</strong> hineinspeichern kann.</p>



<p>Als nächstes zeige ich, wie Du ein <strong>Array deklarieren, bzw. initialisieren</strong> und danach <strong>verwenden</strong> könntest.</p>



<h2 class="wp-block-heading">Zahlen in Array speichern – Excel VB Array</h2>



<p>Hier zeige ich Dir, wie das <strong>Array</strong> <strong>erstellst </strong>und danach mit den <strong>Lottozahlen bestücken </strong>kannst.</p>



<p><strong>Denke immer daran</strong>, <strong>dass </strong>die <strong>Arrays </strong>in der Programmierung generell <strong>bei 0</strong> zu zählen anfangen.</p>



<h3 class="wp-block-heading">Deklaration</h3>



<h4 class="wp-block-heading">Ohne Fassungsvermögen</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim numbers()</pre>



<h4 class="wp-block-heading">Mit Fassungsvermögen</h4>



<p><strong>Hier </strong>ist ein Beispiel einer Deklaration <strong>mit festgelegtem Fassungsvermögen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim numbers(3)</pre>



<h3 class="wp-block-heading">Initialisierung</h3>



<p><strong>Neben </strong>den hier drüber gezeigten Deklarationen, kannst Du mit den folgenden Zeilen ein <strong>Array initialisieren</strong>, <strong>sprich </strong>direkt mit Werten <strong>bestücken</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim numbers
numbers= Array(3, 7, 4)</pre>



<h3 class="wp-block-heading">Direkter Zugriff auf Elemente</h3>



<p>Hier <strong>greifen </strong>wir <strong>händisch</strong>, bzw. manuell <strong>auf </strong>das jeweilige <strong>Element </strong>zu, indem wir den <strong>Index direkt </strong>angeben:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim numbers(2)
numbers(0) = 5
numbers(1) = 9
numbers(2) = 3</pre>



<h3 class="wp-block-heading">Jede Zahl mit Schleife durchlaufen</h3>



<p>Nun <strong>gehen </strong>wir jeden einzelnen Index unseres <strong><strong>Excel VB Array</strong></strong> mit einer Schleife durch und können die einzelnen <strong>Werte </strong>setzen:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">For i = LBound(numbers) To UBound(numbers)
    numbers(i) = ' a value!
Next</pre>



<h2 class="wp-block-heading">Zahlen nachträglich hinzufügen – Excel VB Array</h2>



<p><strong>Auch wenn </strong>wir in unserem &#8222;Super 6&#8220;-Lottospiel die <strong>genaue Anzahl </strong>an Zahlen <strong>kennen</strong>, muss man vermutlich irgendwann weitere Elemente hinzufügen.</p>



<p>Dazu können wir das <strong><a href="https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/redim-statement" target="_blank" rel="noreferrer noopener">ReDim-Statement</a></strong> zusammen mit dem <strong>Preserve-Schlüsselwort</strong> nutzen.</p>



<p>Damit wir die <strong>Größe</strong> des <strong>Arrays zu neu festegelegt</strong> und die bisherigen <strong>Daten</strong> darin erhalten.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim numbers
numbers = Array(3, 5)
ReDim Preserve numbers(2)
numbers(2) = 7</pre>



<p><strong>Nach Ausführung</strong> befinden sich die Zahlen 3, 5 und 7 im <strong>Array</strong>.</p>



<h2 class="wp-block-heading">Das Lottobeispiel selbst</h2>



<p>In diesem Abschnitt <strong>fragen </strong>wir den <strong>Nutzer </strong>einfach <strong>nach 6 Zahlen</strong> <strong>und sammeln </strong>Diese <strong>im </strong>Excel VB <strong>Array</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim numbers
numbers = Array()
Dim number
Dim newBounds
For i = 1 To 6
    newBounds = UBound(numbers) + 1
    ReDim Preserve numbers(newBounds)
    number = CInt(InputBox("Please provide number " &amp; i))
    numbers(newBounds) = number
Next</pre>



<p><strong>Danach </strong>könnte man noch hingehen und eine <strong>Überprüfung </strong>einbauen, <strong>ob </strong>der Nutzer die <strong>Zahlen </strong>tatsächlich <strong>erraten </strong>hat, aber das überlasse ich dann Dir &#x1f609;!</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/excel-vb-array/">Excel VB Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/excel-vb-array/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBS Array</title>
		<link>https://robbelroot.de/blog/vbs-array/</link>
					<comments>https://robbelroot.de/blog/vbs-array/#respond</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Thu, 15 Jul 2021 15:47:29 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic Script]]></category>
		<category><![CDATA[Visual Basic Script lernen]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[auflistung]]></category>
		<category><![CDATA[datenfeld]]></category>
		<category><![CDATA[datenfelder]]></category>
		<category><![CDATA[enumerieren]]></category>
		<category><![CDATA[feld]]></category>
		<category><![CDATA[felder]]></category>
		<category><![CDATA[iterieren]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vbs]]></category>
		<category><![CDATA[visual]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[visual basic script]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=4199</guid>

					<description><![CDATA[<p>VBS Array Du möchtest das VBS Array kennenlernen, bzw. erläutert bekommen was Arrays sind und Sie verstehen? Dann freut es mich, dass deine Recherche nach dem VBS Array Dich zu diesem Beitrag geführt hat! Eventuell findest Du später auch noch folgende Beiträge interessant: VBScript MsgBox, InStr. Was ist ein Daten(-feld) &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbs-array/">VBS Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array.png"><img loading="lazy" decoding="async" width="1024" height="536" src="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-1024x536.png" alt="VBS Array" class="wp-image-3888" title="VBS Array" srcset="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-1024x536.png 1024w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-300x157.png 300w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-768x402.png 768w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-700x366.png 700w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-332x174.png 332w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>VBS Array</figcaption></figure>






<h2 class="wp-block-heading">VBS Array</h2>



<p>Du möchtest das <strong>VBS Array</strong> <strong>kennenlernen</strong>, bzw. erläutert bekommen <strong>was Arrays </strong>sind und Sie <strong>verstehen</strong>?</p>



<p>Dann <strong>freut</strong> es <strong>mich</strong>, <strong>dass deine Recherche </strong>nach dem <strong>VBS Array</strong> Dich zu <strong>diesem Beitrag </strong>geführt hat!</p>



<p><strong>Eventuell</strong> findest Du später auch noch <strong>folgende Beiträge interessant</strong>: <strong><a href="/blog/vbscript-msgbox" target="_blank" rel="noreferrer noopener">VBScript MsgBox</a></strong>, <strong><a href="/blog/vbs-instr" target="_blank" rel="noreferrer noopener">InStr</a></strong>.</p>



<h2 class="wp-block-heading">Was ist ein Daten(-feld) (Array)</h2>



<p><strong>Nicht unbedingt</strong> ist das das <strong>erste was</strong>, einem durch den Kopf schießt, weil man <strong>eher aus </strong>einer Art <strong>Zwang, auf </strong>ein <strong>Array </strong>stößt.</p>



<p><strong>Wahrscheinlich</strong> hat man <strong>irgendwann </strong>den <strong>Punkt </strong>erreicht, dass man durch <strong>Recherchen wie</strong>: &#8222;<strong>Mehrere Daten</strong> zwischenspeichern&#8220;, &#8222;<strong>Listen</strong> erstellen&#8220; und <strong>Ähnliches </strong>darauf <strong>stößt</strong>.</p>



<p>Man <strong>lernt</strong> also irgendwann zwangsweise die <strong>Grenzen </strong>einer <strong>Variable</strong> kennen, Welche für gewöhnlich <strong>nur </strong>&#8222;<strong>einen Wert</strong>&#8220; (wenn auch <strong>komplexere Varianten davon</strong>) <strong>aufnehmen</strong> kann.</p>



<h2 class="wp-block-heading">Mehrere Daten aufnehmen – VBS Array</h2>



<p>Für dieses minimale Beispiel nehmen wir, diverse <strong>Rechnungsnummern und speichern Diese in Form eines VBS-Arrays</strong>.</p>



<p><strong>Auf theoretischer Basis</strong> ist die Aufgabenstellung relativ <strong>irrelevant</strong>, jedoch <strong>bin ich</strong> durchaus ein <strong>Fan </strong>von <strong>etwas deutlich Greifbaren</strong>.</p>



<p><strong>Rechnungsnummern </strong>können <strong>aus Zeichen sowie auch aus Ziffern </strong>bestehen, <strong>daher </strong>nutzen wir in diesem Beitrag ein <strong>Array</strong>, Welches <strong>aus Strings </strong>besteht.</p>



<h2 class="wp-block-heading">Nummer entgegennehmen</h2>



<p><strong>Bevor </strong>wir <strong>mit </strong>dem <strong>Array durchstarten </strong>können, müssen wir uns vorher <strong>Gedanken darüber machen</strong>, <strong>wie </strong>wir die  <strong>Rechnungsnummern bekommen</strong>.</p>



<p><strong>Für </strong>eine <strong>einfache Handhabe</strong> nehmen wir einfach eine<strong> InputBox</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNr
billNr = InputBox("Enter a bill number")</pre>



<p>Da wir <strong>nun </strong>eine <strong>Rechnungsnummer bekommen </strong>haben, wäre vermutlich der nächste Gedanke, <strong>wie </strong>man die Nummer nun <strong>in </strong>ein <strong>Array</strong> <strong>übergibt</strong>, bzw. darin <strong>zwischenspeichert</strong>.</p>



<h2 class="wp-block-heading">Eine Art Liste – VBS Array</h2>



<p>Im <strong>obigen, </strong>simplen <strong>Beispiel </strong>hast Du <strong>gelesen</strong>, <strong>wie </strong>Du eine <strong>Rechnungsnummer </strong>in eine <strong>Variable</strong> ablegen kannst.</p>



<p><strong>Für gewöhnlich</strong> kann eine <strong>Variable </strong>nur <strong>ein Element </strong>speichern.</p>



<p><strong>Auch wenn </strong>Dieses Objekt z. B. <strong>eine Instanz </strong>einer eigenen <strong>Klasse</strong> ist – und somit als <strong>Container für mehrere Daten </strong>dienen kann – passt in eine <strong>Variable nur Eines </strong>davon.</p>



<p>Oft hat man als Neuling ein <strong>Problem</strong>, wenn man das erste Mal statt eines Datenelements, <strong>Mehrere zwischenspeichern </strong>soll.</p>



<p>Genau <strong>an diesem Punkt</strong> kommen <strong>VBS Arrays</strong> ins Spiel, Welche <strong>auch andere Bezeichnungen </strong>wie z. B. Datenfelder haben.</p>



<h2 class="wp-block-heading">Wovon man die Finger lassen sollte</h2>



<p>Wenn man gewisse <strong>Themen sucht</strong>, findet man hier und da tolle Beiträge, <strong>sonst </strong>wärst Du ja auch vermutlich <strong>nicht auf meinen Beitrag</strong> gestolpert *zwinker*.</p>



<p><strong>Traurigerweise</strong> gibt es auch <strong>viele nicht so prickelnde Beispiele</strong>, hier wäre Eins von Diesen:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNr1 As String
Dim billNr2 As String
Dim billNr3 As String</pre>



<p><strong>Sehr oft</strong> habe ich diese blöde Variante bei den verschiedensten &#8222;Programmierern&#8220; <strong>im Quellcode </strong>gefunden, natürlich speziell <strong>bei Grünschnäbeln #nooffense!</strong></p>



<p><strong>Solche Wagnisse</strong> werden aufgrund der erstmals <strong>augenscheinlichen Leichtigkeit</strong>, statt <strong>korrekter Datentypen genutzt</strong>.</p>



<p>Eines der <strong>wichtigen Probleme </strong>dabei ist<strong> </strong>(also die Aufzählung von Variablen), dass man die so deklarierten Variablen z. B. <strong>nicht </strong>gut <strong>durchlaufen</strong> kann.</p>



<h2 class="wp-block-heading">Warum Bus statt LKW? – VBS Array</h2>



<p><strong>Warum </strong>sollte man einen Bus für seine Spedition verwenden, wenn man direkt – <strong>richtigerweise </strong>– einen <strong>LKW fahren</strong> kann (<strong>unabhängig </strong>vom <strong>Führerschein </strong>*grins*)?</p>



<p><strong>Dieser LKW</strong> würde hier vermutlich das Gleichnis zum <strong>VBS Array</strong> sein, <strong>wo man mehrere Datenelemente</strong> gemeinsam <strong>ablegen</strong> kann.</p>



<p>Der nächste Step <strong>zeigt</strong> Dir, wie Du ein <strong>Array deklarieren/initialisieren</strong> und anschließend <strong>nutzen</strong> kannst.</p>



<h2 class="wp-block-heading">Zeichenfolgen in Array speichern – VBS Array</h2>



<p>Hier zeige ich Dir, wie Du ein <strong>Array</strong> erstellen und mit <strong>Rechnungsnummern füllen</strong> kannst.</p>



<p><strong>Behalte </strong>dabei <strong>im Hinterkopf</strong>, <strong>dass Arrays </strong>generell <strong>bei Index 0</strong> <strong>beginnen</strong>.</p>



<h3 class="wp-block-heading">Deklaration</h3>



<h4 class="wp-block-heading">Ohne Größe</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs()</pre>



<h4 class="wp-block-heading">Mit Größe</h4>



<p><strong>Hier </strong>ist ein <strong>Deklarations</strong>-Beispiel <strong>mit einer festgelegten Größe</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs(3)</pre>



<h3 class="wp-block-heading">Initialisierung</h3>



<p><strong>Neben </strong>der <strong>Deklaration</strong>, siehst Du nun, <strong>wie </strong>Du ein <strong>Array initialisieren</strong>, <strong>sprich </strong>direkt mit Werten <strong>bestücken kannst</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs
billNrs = Array("B2908", "B2909", "B2910")</pre>



<h3 class="wp-block-heading">Index angeben</h3>



<p>Hier <strong>geben wir </strong>den gewählten <strong>Index</strong> selbst an, um dann händisch auf das <strong>Element zuzugreifen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs(2)
billNrs(0) = "B2808"
billNrs(1) = "B2809"
billNrs(2) = "B2810"</pre>



<h3 class="wp-block-heading">Iteration mit Schleife</h3>



<p>Nun <strong>iterieren</strong> wir unser <strong>VBS Array</strong> mit einer Schleife und können <strong>jedes Mal</strong> den Wert <strong>setzen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">For i = LBound(billNrs) To UBound(billNrs)
    billNrs(i) = ' the next value!
Next</pre>



<h2 class="wp-block-heading">Daten anschließend hinzufügen – VBS Array</h2>



<p>Irgendwann wird garantiert der <strong>Moment</strong> kommen, dass man auch <strong>nachträglich </strong>noch <strong>Elemente hinzufügen </strong>muss.</p>



<p>Dafür nutzt man die <strong><a href="https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/redim-statement" target="_blank" rel="noreferrer noopener">ReDim-Anweisung</a> </strong>kombiniert mit dem <strong>Preserve-Modifizierer</strong>, um die <strong>Größe</strong> des <strong>Arrays zu aktualisieren</strong> und <strong>Daten</strong> zu erhalten.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs
billNrs = Array("B3", "B4")
ReDim Preserve billNrs(2)
billNrs(2) = "B5"</pre>



<p><strong>Nach </strong>der <strong>Ausführung</strong> des Codes <strong>sind</strong> die Strings <strong>B1, B2 und B3 im Array</strong> vorhanden.</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbs-array/">VBS Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/vbs-array/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBScript Array</title>
		<link>https://robbelroot.de/blog/vbscript-array/</link>
					<comments>https://robbelroot.de/blog/vbscript-array/#comments</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Thu, 15 Jul 2021 13:31:22 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic Script]]></category>
		<category><![CDATA[Visual Basic Script lernen]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[auflistung]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[daten]]></category>
		<category><![CDATA[datenfelder]]></category>
		<category><![CDATA[feld]]></category>
		<category><![CDATA[felder]]></category>
		<category><![CDATA[lang]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[vbs]]></category>
		<category><![CDATA[vbscript]]></category>
		<category><![CDATA[visual]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[visual basic script]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=4122</guid>

					<description><![CDATA[<p>VBScript Array Du möchtest mehr über das VBScript-Array lernen, bzw. erläutert bekommen was Arrays sind und Sie verstehen? Dann freue ich mich, dass Du durch deine Recherche nach dem VBScript-Array zu diesem Beitrag gefunden hast! Vielleicht findest Du später auch noch folgende Beiträge interessant: VBScript MsgBox, InStr. Was ist ein &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbscript-array/">VBScript Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array.png"><img loading="lazy" decoding="async" width="1024" height="536" src="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-1024x536.png" alt="VBScript Array" class="wp-image-3888" title="VBScript Array" srcset="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-1024x536.png 1024w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-300x157.png 300w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-768x402.png 768w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-700x366.png 700w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-332x174.png 332w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>VBScript Array</figcaption></figure>






<h2 class="wp-block-heading">VBScript Array</h2>



<p>Du möchtest <strong>mehr über </strong>das <strong>VBScript-Array</strong> <strong>lernen</strong>, bzw. erläutert bekommen <strong>was Arrays </strong>sind und Sie <strong>verstehen</strong>?</p>



<p>Dann <strong>freue </strong>ich <strong>mich</strong>, <strong>dass </strong>Du durch <strong>deine Recherche </strong>nach dem <strong>VBScript-Array</strong> zu <strong>diesem Beitrag </strong>gefunden hast!</p>



<p><strong>Vielleicht </strong>findest Du später auch noch <strong>folgende Beiträge interessant</strong>: <strong><a href="/blog/vbscript-msgbox" target="_blank" rel="noreferrer noopener">VBScript MsgBox</a></strong>, <strong><a href="/blog/vbs-instr" target="_blank" rel="noreferrer noopener">InStr</a></strong>.</p>



<h2 class="wp-block-heading">Was ist ein Datenfeld (Array)</h2>



<p><strong>Nicht zwangsweise </strong>ist das die <strong>erste Frage</strong>, die man sich stellt, weil man <strong>eher aus </strong>einer Art <strong>Notwendigkeit, auf </strong>ein <strong>Array </strong>stößt.</p>



<p><strong>Wahrscheinlich</strong> steht man <strong>irgendwann </strong>an einem Punkt als Entwickler, dass man <strong>Recherchen wie</strong>: &#8222;<strong>Mehrere Elemente</strong> speichern&#8220;, &#8222;<strong>Liste </strong>erstellen&#8220;, uvm. <strong>durchführt</strong>.</p>



<p>Man <strong>stößt </strong>also irgendwann an<strong> </strong>die <strong>Grenzen </strong>einer <strong>Variable</strong>, Welche natürlich <strong>nur </strong>&#8222;<strong>einen Wert</strong>&#8220; (wenn auch <strong>Komplexere</strong>) <strong>zwischenspeichern</strong> kann.</p>



<h2 class="wp-block-heading">Daten zwischenspeichern – VBScript Array</h2>



<p>Für dieses fiktive Beispiel nehmen wir uns vor, diverse <strong>Rechnungsnummern in Form des VBScript-Arrays</strong> zu <strong>speichern</strong>.</p>



<p><strong>Theoretisch</strong> ist die jeweilige Problemstellung fast <strong>egal</strong>, allerdings <strong>bin ich</strong> ein <strong>Fan </strong>davon, <strong>etwas Deutliches</strong> und somit meiner Meinung nach etwas <strong>Verständlicheres </strong>zu haben.</p>



<p><strong>Rechnungsnummern </strong>können freilich <strong>aus Zeichen und Ziffern </strong>bestehen, <strong>daher </strong>verwenden wir hier ein <strong>Array </strong>bestehend <strong>aus dem String</strong>-Datentyp.</p>



<h2 class="wp-block-heading">Rechnungsnummer aufnehmen</h2>



<p><strong>Bevor </strong>wir <strong>mit </strong>einem <strong>Array loslegen</strong> können, müssen wir uns freilich <strong>erstmal Gedanken machen</strong>, <strong>wie </strong>wir die einzelnen <strong>Rechnungsnummern abgreifen</strong> möchten.</p>



<p><strong>Für </strong>eine <strong>einfache Demonstration </strong>nehmen wir eine <strong>simple InputBox</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNr
billNr = InputBox("Enter a bill number")</pre>



<p><strong>Nun</strong>, da wir die <strong>Rechnungsnummer haben</strong>, wäre die <strong>nächste Überlegung</strong>, <strong>wie </strong>man Diese<strong> </strong>nun <strong>in </strong>ein <strong>String-Array</strong> speichert.</p>



<h2 class="wp-block-heading">Aus wenig mach viel – VBScript Array</h2>



<p><strong>Hier drüber </strong>hast du ein Beispiel <strong>gesehen</strong>, <strong>wie </strong>Du die <strong>Rechnungsnummer </strong>in eine <strong>Variable</strong> zwischenspeichern kannst.</p>



<p><strong>In erster Linie</strong> dient die Variable nur zur Speicherung eines <strong>Datenelements</strong>, bzw. Objekts.</p>



<p><strong>Auch wenn </strong>Dieses Objekt wie z. B. <strong>eine Instanz </strong>einer eigenen <strong>Klasse </strong>auch <strong>komplex </strong>sein kann.</p>



<p>Meistens hat man als Anfänger ein <strong>Problem</strong>, wenn man statt eines Datenelements, <strong>Mehrere speichern</strong> muss.</p>



<p>Genau <strong>hier</strong> kommen dann <strong>VBScript Arrays</strong> ins Spiel, Welche auch als <strong>Datenfelder</strong>, bzw. <strong>Felder </strong>bezeichnet werden.</p>



<h2 class="wp-block-heading">Wie man nicht vorgehen sollte</h2>



<p>Natürlich ist das World-Wide-Web eine tolle Sache, wenn man gewisse <strong>Themen recherchiert</strong>, <strong>sonst </strong>wärst Du ja auch vermutlich <strong>nicht auf meinen Beitrag</strong> gestolpert.</p>



<p><strong>Traurigerweise</strong> gibt es aber auch <strong>viele schwarze Schafe</strong>, hier wäre Eins davon:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNr1 As String
Dim billNr2 As String
Dim billNr3 As String</pre>



<p><strong>Leider </strong>finde ich diese <strong>Variante </strong>sehr <strong>oft</strong> bei den verschiedensten Codern <strong>im Quellcode </strong>– speziell <strong>bei Anfängern</strong>.</p>



<p><strong>Statt </strong>die eher <strong>geeigneten Datentypen </strong>zu verwenden, werden <strong>stattdessen solche Versuche</strong> durchgeführt.</p>



<p>Ein <strong>hauptsächliches Problem mit </strong>dem gerade angeführten <strong>Beispiel </strong>(also der Nummerierung von Variablen) ist, dass man Diese z. B. <strong>nicht </strong>gut <strong>durchlaufen</strong> kann.</p>



<h2 class="wp-block-heading">Warum Schublade statt Schrank? – VBScript Array</h2>



<p><strong>Warum </strong>sollte man eine <strong>Schublade für </strong>seine <strong>Bücher</strong> verwenden, wenn man direkt – richtigerweise – einen <strong>ganzen Schrank nehmen </strong>kann?</p>



<p><strong>Dieser Schrank</strong> würde hier die <strong>Entsprechung</strong> zum <strong>VBScript Array</strong> abbilden, <strong>worin mehrere Datenelemente</strong> auf einmal <strong>zwischenspeichern</strong> kann.</p>



<p>Im nächsten Schritt <strong>zeige </strong>ich Dir, wie Du ein <strong>Array erstellen </strong>und anschließend <strong>verwenden</strong> kannst.</p>



<h2 class="wp-block-heading">Strings in das Array speichern– VBScript Array</h2>



<p><strong>Nun</strong> demonstriere ich Dir, wie Du ein <strong>Array</strong> deklarieren und anschließend mit <strong>Rechnungsnummern bestücken </strong>kannst.</p>



<p><strong>Behalte </strong>dabei <strong>im Kopf</strong>, <strong>dass Arrays </strong>allgemein <strong>bei 0</strong>, <strong>also mit </strong>dem sogenannten <strong>Index anfangen</strong>.</p>



<h3 class="wp-block-heading">Deklarieren</h3>



<h4 class="wp-block-heading">Ohne Kapazität</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs()</pre>



<h4 class="wp-block-heading">Mit Kapazität</h4>



<p><strong>Hier </strong>ist ein <strong>Deklarations</strong>-Beispiel <strong>mit Kapazität</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs(3)</pre>



<h3 class="wp-block-heading">Initialisieren</h3>



<p><strong>Neben </strong>der <strong>simplen Deklaration</strong>, zeige ich Dir nun, <strong>wie </strong>Du ein <strong>String-Array initialisieren</strong>, <strong>sprich </strong>direkt mit Werten <strong>befüllen kannst</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs
billNrs = Array("B2508", "B2509", "B2510")</pre>



<h3 class="wp-block-heading">Index händisch angeben</h3>



<p>Jetzt <strong>geben wir </strong>den <strong>Index händisch</strong> an, um manuell auf das jeweilige <strong>Element zuzugreifen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs(2)
billNrs(0) = "B2608"
billNrs(1) = "B2609"
billNrs(2) = "B2610"</pre>



<h3 class="wp-block-heading">Durchlaufen via Schleife</h3>



<p>Nun <strong>durchlaufen </strong>wir das <strong>VBScript-Array</strong> mit einer Schleife und können somit <strong>bei jeder Iteration</strong> den Wert der <strong>jeweiligen Rechnung setzen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">For i = LBound(billNrs) To UBound(billNrs)
    billNrs(i) = ' the new value!
Next</pre>



<h2 class="wp-block-heading">Werte nachträglich hinzufügen – VBScript Array</h2>



<p><strong>Natürlich kommt </strong>man<strong> </strong>auch irgendwann <strong>in den Moment</strong>, dass man auch <strong>anschließend</strong> noch <strong>Daten hinzufügen </strong>muss.</p>



<p>Dafür nutzen wir die <strong><a href="https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/redim-statement" target="_blank" rel="noreferrer noopener">ReDim-Anweisung</a> </strong>zusammen mit dem <strong>Preserve-Modifizierer</strong>, um die <strong>Größe</strong> des <strong>Arrays neu zu definieren</strong> und die <strong>vorhandenen Daten</strong> zu erhalten.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs
billNrs = Array("B1", "B2")
ReDim Preserve billNrs(2)
billNrs(2) = "B3"</pre>



<p><strong>Nach </strong>der <strong>Ausführung</strong> des Codes <strong>sind</strong> die Strings <strong>B1, B2 und B3 im Array</strong> vorhanden.</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbscript-array/">VBScript Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/vbscript-array/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>VB.NET ArrayList</title>
		<link>https://robbelroot.de/blog/vbnet-arraylist/</link>
					<comments>https://robbelroot.de/blog/vbnet-arraylist/#respond</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Wed, 14 Jul 2021 05:39:11 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic .NET]]></category>
		<category><![CDATA[Visual Basic .NET lernen]]></category>
		<category><![CDATA[alternative]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[arraylist]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[auflistung]]></category>
		<category><![CDATA[datenfeld]]></category>
		<category><![CDATA[datenfelder]]></category>
		<category><![CDATA[effizient]]></category>
		<category><![CDATA[feld]]></category>
		<category><![CDATA[felder]]></category>
		<category><![CDATA[geschwindigkeit]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[modern]]></category>
		<category><![CDATA[neu]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[speicher]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[vbnet]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=3925</guid>

					<description><![CDATA[<p>VB.NET ArrayList Du möchtest eine VB.NET ArrayList verwenden, bzw. deren Nutzen und Arbeitsweise verstehen? Dann freue ich mich, Dich Aufgrund deiner Recherche in meinem Beitrag hier begrüßen zu dürfen! Vielleicht interessieren Dich auch noch anderen Themen wie: VB.NET Array, Await-Anweisung. Ein Spätzünder? Ich muss persönlich zugeben, dass ich in meiner &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbnet-arraylist/">VB.NET ArrayList</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList.png"><img loading="lazy" decoding="async" width="1024" height="536" src="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList-1024x536.png" alt="VB.NET ArrayList" class="wp-image-3927" title="VB.NET ArrayList" srcset="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList-1024x536.png 1024w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList-300x157.png 300w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList-768x402.png 768w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList-700x366.png 700w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList-332x174.png 332w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-ArrayList.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>






<h2 class="wp-block-heading">VB.NET ArrayList</h2>



<p>Du <strong>möchtest </strong>eine <strong>VB.NET ArrayList</strong> <strong>verwenden</strong>, bzw. deren Nutzen und Arbeitsweise <strong>verstehen</strong>?</p>



<p>Dann <strong>freue </strong>ich <strong>mich</strong>, Dich Aufgrund deiner <strong>Recherche </strong>in meinem <strong>Beitrag </strong>hier <strong>begrüßen </strong>zu dürfen!</p>



<p>Vielleicht <strong>interessieren </strong>Dich auch <strong>noch anderen </strong>Themen wie: <strong><a href="https://robbelroot.de/blog/vbnet-array/" target="_blank" rel="noreferrer noopener">VB.NET Array</a></strong>, <strong><a href="/blog/vbnet-await" target="_blank" rel="noreferrer noopener">Await-Anweisung</a></strong>.</p>



<h2 class="wp-block-heading">Ein Spätzünder?</h2>



<p>Ich <strong>muss </strong>persönlich <strong>zugeben</strong>, dass ich in meiner <strong>Karriere als .NET Entwickler</strong> erst sehr sehr <strong>spät auf </strong>die <strong>ArrayList gestoßen </strong>bin, da ich relativ früh schon <strong>Alternativen </strong>verwendet habe.</p>



<p><strong>Wenn </strong>man <strong>wirklich stupide anfängt </strong>die <strong>Softwareentwicklung </strong>zu lernen, ist das <strong>Erste </strong>worauf man <strong>stößt vermutlich </strong>eine <strong>Variable</strong>.</p>



<p><strong>Nachdem </strong>man dann damit <strong>begonnen </strong>hat zu arbeiten und ein wenig <strong>Erfahrung sammeln </strong>konnte, kommt man <strong>früher oder später </strong>an den Punkt, <strong>mehrere Elemente </strong>speichern zu müssen.</p>



<p>Das <strong>Nächste </strong>was man <strong>vor allem durch Bücher</strong>, etc. <strong>linear </strong>kennenlernt – <strong>statt </strong>mit den <strong>modernen Mitteln </strong>zu beginnen – ist <strong>vermutlich </strong>das <a href="https://docs.microsoft.com/de-de/dotnet/visual-basic/programming-guide/language-features/arrays/" target="_blank" rel="noreferrer noopener"><strong>Array</strong></a>.</p>



<h2 class="wp-block-heading">Was ist eine ArrayList?</h2>



<p><strong>Über </strong>die <strong>Arrays hinweg stößt </strong>man eventuell früher oder später – bei mir später – <strong>auf </strong>die <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.collections.arraylist?view=net-5.0" target="_blank" rel="noreferrer noopener">ArrayList</a></strong>.</p>



<p>Eine <strong>ArrayList </strong>dient dazu, <strong>analog zu </strong>einem <strong>Array mehrere Elemente </strong>zu <strong>speichern</strong>, <strong>mit </strong>allerdings einer <strong>Besonderheit</strong>.</p>



<p>Die <strong>ArrayList kann </strong>jedoch <strong>heterogene Elemente </strong>speichern, was <strong>eigentlich </strong>als <strong>unsauber </strong>gilt.</p>



<h2 class="wp-block-heading">Deklaration einer VB.NET ArrayList</h2>



<p>Hier schauen wir uns einmal eine <strong>einfache Deklaration </strong>– z. B. als Eigenschaft der Form – <strong>einer ArrayList </strong>an:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Public Class Form1
    Public Property MyList As ArrayList
End Class</pre>



<p><strong>Natürlich können </strong>wir die <strong>ArrayList </strong>mit dieser Art von Definition <strong>noch nicht verwenden</strong>, <strong>da </strong>es sich um eine <strong>Klasse </strong>handelt, <strong>Welche </strong>somit erst <strong>instanziiert </strong>werden <strong>muss</strong>.</p>



<p><strong>Würde man </strong>jetzt im &#8222;Form Load&#8220;-Ereignis <strong>versuchen </strong>auf die Array-Liste <strong>zuzugreifen</strong>, <strong>würde man </strong>verständlicherweise eine Null-Verweis-<strong>Ausnahme bekommen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MyList.&lt;AnyPropertyOrMethod> ' ...
End Sub</pre>



<p>Wir <strong>müssen </strong>die (Array-) <strong>Liste </strong>also <strong>vorher </strong>z. B. <strong>im Konstruktor </strong>der Form <strong>instanziieren</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Sub New()
    InitializeComponent()
    MyList = New ArrayList()
End Sub</pre>



<h2 class="wp-block-heading">Initialisierung einer VB.NET ArrayList</h2>



<p>In <strong>diesem Abschnitt </strong>schauen wir uns die <strong>Initialisierung </strong>– also die <strong>Deklaration inkl</strong>. <strong>Wert-Zuweisung</strong>&#8220; an.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Private Sub MyTestSub()
    Dim list As ArrayList = New ArrayList()
    ' Or with Option Infer..
    ' Dim list = new ArrayList()
    list.&lt;PropertyOrMethodEtc> ' ..
End Sub</pre>



<p><strong>Hier drüber </strong>habe ich z. B. die <strong>ArrayList </strong>namens &#8222;<strong>list&#8220; </strong>einmal <strong>ohne und </strong>einmal <strong>mit <a href="https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/option-infer-statement" target="_blank" rel="noreferrer noopener">Option Infer</a></strong> instanziiert.</p>



<p><strong>Danach </strong>können wir dann <strong>mit verschiedenen Eigenschaften</strong>, <strong>Methoden</strong>, oder <strong>Ereignissen arbeiten</strong>.</p>



<h2 class="wp-block-heading">Hinzufügen von Elementen</h2>



<p>Um der <strong>ArrayList </strong>ein <strong>Element hinzuzufügen</strong>, können wir z. B. die <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.collections.arraylist.add?view=net-5.0" target="_blank" rel="noreferrer noopener">Add-Methode</a></strong> verwenden.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">list.Add("John")</pre>



<p><strong>Möchtest Du </strong>hingegen <strong>mehrere Elemente </strong>in einem einzigen Schritt <strong>hinzufügen</strong>, kannst Du auch die <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.collections.arraylist.addrange?view=net-5.0" target="_blank" rel="noreferrer noopener">AddRange-Methode</a></strong> verwenden.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">list.AddRange(New Object() {"Abc", 1, Now})</pre>



<p>Und hier stoßen wir dann schon auf einen <strong>durchaus negativen Aspekt</strong>, denn die <strong>Liste kann </strong>wie Du siehst <strong>non-typisiert sein</strong>.</p>



<p>Das <strong>bedeutet</strong>, dass Sie letztendlich <strong>Elemente von verschiedenen Typen </strong>unterbringen kann.</p>



<p>Hier nochmal ein <strong>Beispiel mit </strong>Objekten des <strong>gleichen Typs</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">list.AddRange(New String() {"John", "Max", "Diona"})</pre>



<h2 class="wp-block-heading">Untypisiert – Ein negativer Aspekt</h2>



<p><strong>Wie </strong>hier <strong>kurz </strong>drüber <strong>angesprochen kann </strong>die <strong>ArrayList </strong>Objekte, bzw. <strong>Elemente </strong>von <strong>verschiedenen Typen </strong>aufnehmen.</p>



<p><strong>Programmier</strong>&#8211;<strong>technisch </strong>gesagt ist Sie also non-, bzw. <strong>untypisiert </strong>– sie <strong>folgt </strong>daher <strong>keinem speziellen Typ </strong>wie z. B. einem String, oder einem Integer.</p>



<p>Allgemein gilt diese <strong>Vorgehensweise </strong>als relativ <strong>unsauber</strong>, <strong>da </strong>man praktisch <strong>Äpfel mit Birnen vergleicht</strong>.</p>



<p>Es <strong>gibt </strong>jedoch <strong>Ausnahmen</strong>, wo man ähnlich vorgehen könnte, <strong>allerdings </strong>würde man dann <strong>dort vermutlich sinnvolle Basisklassen </strong>oder <strong>Schnittstellen verwenden</strong>.</p>



<h2 class="wp-block-heading">Outdated – Weiterer negativer Aspekt</h2>



<p>Wie man auch auf der <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.collections.arraylist?view=net-5.0" target="_blank" rel="noreferrer noopener">Website der .NET-Dokumentation</a></strong> über die <strong>ArrayList </strong>weiter unten nachlesen kann, ist Diese <strong>veraltet </strong>und <strong>sollte </strong>für neue Entwicklungen <strong>nicht mehr verwendet werden</strong>.</p>



<p>Falls Du in deinem Programm eine <strong>heterogene Auflistung </strong>– also eine Auflistung von unterschiedlichen – Objekten benötigen solltest, <strong>kannst Du </strong>dafür <strong>auf </strong>die <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.collections.generic.list-1?view=net-5.0" target="_blank" rel="noreferrer noopener">List-Klasse</a></strong> <strong>zurückgreifen</strong>.</p>



<p>Die <strong>List-Klasse</strong> ist <strong>auch </strong>– und besonders – <strong>für </strong>die <strong>Auflistung ähnlicher</strong>, also homogener <strong>Objekte geeignet</strong>.</p>



<h2 class="wp-block-heading">Entfernen von Elementen</h2>



<p><strong>Nachdem </strong>wir uns nun <strong>angeschaut </strong>haben, <strong>wie </strong>man <strong>Elemente </strong>auf verschiedene Arten <strong>hinzufügen kann</strong>, <strong>schauen </strong>wir uns <strong>nun </strong>das <strong>gegenteilige</strong> <strong>Entfernen von Elementen </strong>an.</p>



<p>Um <strong>Elemente aus </strong>einer <strong>ArrayList </strong>zu <strong>entfernen</strong>, können wir unter anderem die <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.collections.arraylist.remove?view=net-5.0" target="_blank" rel="noreferrer noopener">Remove-Methode</a></strong> verwenden.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">list.Remove("Max")</pre>



<p><strong>Falls </strong>wir <strong>ein </strong>Element an einer <strong>bestimmten Position </strong>– indexbasiert (!) – <strong>entfernen </strong>wollen, gibt es die <strong>RemoveAt</strong>-Methode.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">list.RemoveAt(0)</pre>



<p><strong>Alternativ </strong>dazu können wir auch <strong>mehrere Objekte </strong>durch die <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.collections.arraylist.removerange?view=net-5.0" target="_blank" rel="noreferrer noopener">RemoveRange-Methode</a></strong> auf einmal entfernen.</p>



<p>Dabei müssen wir als <strong>ersten Parameter den </strong>jeweiligen <strong>Index</strong> angeben, an dem wir <strong>starten wollen</strong>, die <strong>Elemente </strong>zu <strong>entfernen</strong>.</p>



<p>Als <strong>zweiten Parameter </strong>können wir die <strong>Anzahl </strong>der <strong>zu entfernenden Elemente</strong> ab der <strong>Index-Position</strong> angeben.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim indexToStartRemoving = 0
Dim itemCountToRemove = 2
list.RemoveRange(indexToStartRemoving, itemCountToRemove)</pre>



<h2 class="wp-block-heading">Downloads</h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link" href="/downloads/vbnet/ArrayListExample.zip" target="_blank" rel="noreferrer noopener">ArrayListExample.zip</a></div>
</div>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbnet-arraylist/">VB.NET ArrayList</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/vbnet-arraylist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VB.NET Array</title>
		<link>https://robbelroot.de/blog/vbnet-array/</link>
					<comments>https://robbelroot.de/blog/vbnet-array/#comments</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Wed, 14 Jul 2021 02:51:16 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic .NET]]></category>
		<category><![CDATA[Visual Basic .NET lernen]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[auflisten]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[datenfeld]]></category>
		<category><![CDATA[datenfelder]]></category>
		<category><![CDATA[feld]]></category>
		<category><![CDATA[felder]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[listing]]></category>
		<category><![CDATA[mehrfach]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[net]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[vbnet]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=3885</guid>

					<description><![CDATA[<p>VB.NET Array Du möchtest mehr über das VB.NET Array lernen, bzw. wissen was Arrays sind und wie man Sie verwendet? Dann freue ich mich, dass Du durch deine Recherche nach dem VB.NET Array auf meine Seite und zu diesem Beitrag gefunden hast! Vielleicht findest Du die folgenden Beiträge auch noch &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbnet-array/">VB.NET Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array.png"><img loading="lazy" decoding="async" width="1024" height="536" src="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-1024x536.png" alt="VB.NET Array" class="wp-image-3888" title="VB.NET Array" srcset="https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-1024x536.png 1024w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-300x157.png 300w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-768x402.png 768w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-700x366.png 700w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array-332x174.png 332w, https://robbelroot.de/wp-content/uploads/2021/07/VB.NET-Array.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>VB.NET Array</figcaption></figure>






<h2 class="wp-block-heading">VB.NET Array</h2>



<p>Du möchtest <strong>mehr über </strong>das <strong>VB.NET Array</strong> <strong>lernen</strong>, bzw. wissen <strong>was Arrays </strong>sind und <strong>wie </strong>man Sie <strong>verwendet</strong>?</p>



<p>Dann <strong>freue </strong>ich <strong>mich</strong>, <strong>dass </strong>Du durch <strong>deine Recherche </strong>nach dem <strong>VB.NET Array</strong> auf <strong>meine Seite </strong>und zu <strong>diesem Beitrag </strong>gefunden hast!</p>



<p><strong>Vielleicht </strong>findest Du die <strong>folgenden Beiträge </strong>auch noch <strong>interessant</strong>: <strong><a href="/blog/vbnet-await" target="_blank" rel="noreferrer noopener">Await-Operator</a></strong>, <strong><a href="/blog/vbnet-callback" target="_blank" rel="noreferrer noopener">Callbacks</a></strong>, <strong><a href="/blog/vbnet-andalso" target="_blank" rel="noreferrer noopener">AndAlso</a></strong>.</p>



<h2 class="wp-block-heading">Was sind Datenfelder (Arrays)</h2>



<p>Ich <strong>denke</strong>, dass das <strong>nicht zwangsweise </strong>die <strong>erste Frage </strong>ist, die man sich stellt, da man <strong>eher aus </strong>einer <strong>Notwendigkeit auf </strong>ein <strong>Array </strong>o. Ä. stößt.</p>



<p><strong>Vermutlich </strong>steht man einfach <strong>irgendwann </strong>an dem Punkt als Entwickler, dass man <strong>Sachen wie</strong>: &#8222;<strong>Mehrere Elemente</strong> speichern&#8220;, &#8222;<strong>Liste </strong>erstellen&#8220;, uvm. <strong>recherchiert</strong>.</p>



<p>Das heißt, man <strong>stößt irgendwann </strong>die <strong>Grenzen einer </strong>normalen <strong>Variable</strong>, Welche natürlich <strong>nur </strong>&#8222;<strong>einen Wert</strong>&#8220; (wenn auch <strong>komplexe Werte</strong>) <strong>speichern </strong>kann.</p>



<h2 class="wp-block-heading">Datenelemente zwischenspeichern – VB.NET Array</h2>



<p>Für das <strong>diesmalige Beispiel </strong>nehmen wir uns einmal <strong>konkret </strong>vor, verschiedene <strong>Rechnungsnummern als String-Array</strong> zu <strong>speichern</strong>.</p>



<p><strong>An sich </strong>ist die konkrete Problemstellung für das Beispiel <strong>egal</strong>, <strong>ich </strong>bin <strong>allerdings </strong>ein <strong>Fan </strong>davon, <strong>etwas Greifbares </strong>und somit meiner Meinung nach <strong>Verständlicheres </strong>zu haben.</p>



<p><strong>Rechnungsnummern </strong>können natürlich auch <strong>aus </strong>einer Kombination von <strong>Zeichen und Ziffern </strong>bestehen, <strong>daher </strong>verwenden wir hier ein <strong>Array </strong>bestehend <strong>aus Strings</strong>.</p>



<h2 class="wp-block-heading">Rechnungsnummer entgegennehmen</h2>



<p><strong>Bevor </strong>wir <strong>mit </strong>dem <strong>Array starten </strong>können, muss man sich natürlich <strong>erstmal überlegen</strong>, <strong>wie </strong>man die einzelnen <strong>Rechnungsnummern entgegennehmen </strong>möchte.</p>



<p><strong>Für </strong>eine <strong>simple Demonstration </strong>nehmen wir einfach eine <strong>einfache InputBox</strong>, <strong>alternativ </strong>könnte man natürlich <strong>auch </strong>eine <strong>Textbox</strong>, <strong>oder </strong>eine <strong>Eingabe </strong>in einer <strong>Konsolenanwendung </strong>verwenden.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNr As String = InputBox("Enter the bill nr please!")</pre>



<p><strong>Da </strong>wir <strong>nun </strong>die <strong>Rechnungsnummer haben</strong>, wäre die <strong>nächste Frage</strong>, <strong>wie </strong>man diese <strong>Nummer </strong>nun <strong>in </strong>ein <strong>String-Array</strong> bekommt.</p>



<h2 class="wp-block-heading">Aus eins mach drei – VB.NET Array</h2>



<p><strong>Oben drüber </strong>hast du ein Beispiel <strong>gesehen</strong>, <strong>wie </strong>Du eine <strong>Rechnungsnummer </strong>in einer <strong>Variable speichern </strong>kannst.</p>



<p><strong>Eine Variable </strong>ist in erster <strong>Linie </strong>dazu da, nur ein <strong>Datenelement </strong>/ Objekt zu speichern, <strong>auch wenn </strong>Dieses wie z. B. <strong>eine Instanz </strong>einer eigenen <strong>Klasse </strong>auch <strong>komplex </strong>sein kann.</p>



<p>In <strong>erster Linie</strong> hat man häufig – besonders als Anfänger – das <strong>Problem</strong>, dass man jedoch <strong>mehrere Daten</strong> <strong>speichern </strong>muss.</p>



<p>Genau <strong>an dieser Stelle </strong>kommen dann <strong>VB.NET Arrays</strong> ins Spiel, Welche auch gerne <strong>Datenfelder</strong>, bzw. <strong>Felder </strong>genannt werden.</p>



<h2 class="wp-block-heading">Wie man&#8217;s nicht machen sollte</h2>



<p>Das <strong>Internet </strong>ist <strong>natürlich </strong>eine <strong>wunderbare Sache</strong>, wenn man gewisse <strong>Sachen recherchiert</strong>, <strong>sonst </strong>wärst Du ja auch <strong>nicht auf meine Seite </strong>gestoßen.</p>



<p><strong>Leider </strong>gibt es auch <strong>viele schwarze Schafe</strong>, bzw. nicht so optimale Beispiele, hier wäre Eins davon:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNr1 As String
Dim billNr2 As String
Dim billNr3 As String</pre>



<p><strong>Leider </strong>finde ich diese <strong>gängige Variante </strong>sehr <strong>häufig </strong>bei den verschiedensten Entwicklern <strong>im Code </strong>– speziell <strong>bei Neulingen</strong>.</p>



<p><strong>Statt </strong>hier <strong>geeignete Datentypen </strong>zu verwenden – wovon z. B. <strong>Einer gleich folgen </strong>wird – werden <strong>stattdessen solche Experimente </strong>durchgeführt.</p>



<p>Eines der <strong>Hauptprobleme mit </strong>dem obigen <strong>Beispiel </strong>(also der Durchnummerierung von Variablen) ist, dass man Dieses z. B. <strong>nicht </strong>gut <strong>iterieren </strong>kann.</p>



<h2 class="wp-block-heading">Warum Karton statt Container? – VB.NET Array</h2>



<p><strong>Warum </strong>sollte man einen <strong>Karton für </strong>eine ganze <strong>Wohnung </strong>verwenden, wenn man direkt – richtigerweise – einen <strong>Container nehmen </strong>kann.</p>



<p><strong>Dieser Container </strong>könnte hier die <strong>Analogie </strong>zum <strong>VB.NET Array</strong> darstellen, <strong>worin </strong>man <strong>mehrere Werte </strong>auf einmal <strong>speichern </strong>kann.</p>



<p>Als <strong>nächstes zeige </strong>ich Dir, wie Du ein <strong>Array erstellen </strong>und anschließend <strong>benutzen </strong>kannst.</p>



<h3 class="wp-block-heading">Beispiele aus dem Netz</h3>



<p>Im <strong>Internet sehe </strong>ich häufig <strong>Beispiele wie </strong>das <strong>Folgende</strong>, nur denke ich, dass es <strong>anderweitig </strong>durchaus <strong>besser </strong>wäre:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs(2) As String</pre>



<p><strong>Denn übersetzt </strong>ins Deutsche würde die <strong>Anweisung eigentlich </strong>das hier <strong>heißen</strong>: &#8222;<strong>Definiere </strong>ein <strong>Array </strong>namens <strong>billNrs </strong>als String-Array, <strong>Welches 3 (!) Elemente speichern kann</strong>.&#8220;</p>



<p>Die durchaus <strong>richtige Beschreibung </strong>des Codes <strong>passt </strong>allerdings <strong>nicht zur </strong>– ich nenne es mal – <strong>Grammatik</strong>.</p>



<p><strong>Dim</strong>&#8211;<strong>Anweisungen </strong>kann man für <strong>gewöhnlich </strong>auf das <strong>Wesentliche</strong>, <strong>Folgende herunterbrechen</strong>.</p>



<h3 class="wp-block-heading">Falsche Grammatik?</h3>



<pre class="wp-block-verse">"<strong>Lege </strong>die Variable A <strong>als </strong>Ding vom <strong>Typ B</strong> <strong>fest</strong>"</pre>



<p>Die <strong>Anweisung von oben </strong>würde ich allerdings <strong>irrtümlich </strong>als das hier <strong>auffassen</strong>:</p>



<pre class="wp-block-verse">"Lege <strong>billNrs </strong>von der <strong>Größe </strong>G <strong>als String </strong>fest"</pre>



<p>Das <strong>empfinde ich </strong>persönlich als <strong>unlogisch</strong>, <strong>da </strong>wir die <strong>Variable </strong>ja <strong>nicht </strong>als <strong>String</strong>, <strong>sondern </strong>als <strong>String-Array</strong> festlegen / <strong>deklarieren </strong>möchten.</p>



<h3 class="wp-block-heading">Richtige Grammatik!</h3>



<p>Ich selbst <strong>bevorzuge </strong>daher <strong>die </strong>folgende <strong>Variante</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs = New String(2) {}</pre>



<p>Das <strong>empfinde </strong>ich <strong>dann richtigerweise als </strong>folgende Formulierung:</p>



<pre class="wp-block-verse">"Lege <strong>billNrs als Array </strong>von <strong>3 Strings</strong> fest"</pre>



<h2 class="wp-block-heading">Die Strings ins String-Array füllen – VB.NET Array</h2>



<p><strong>Als nächstes</strong> demonstriere ich Dir, wie Du das definierte <strong>String-Array</strong> nun mit <strong>Rechnungsnummern bestücken </strong>kannst.</p>



<p><strong>Behalte </strong>dabei <strong>im Kopf</strong>, <strong>dass Arrays </strong>allgemein <strong>bei 0</strong>, <strong>also mit </strong>dem sogenannten <strong>Index anfangen</strong>.</p>



<h3 class="wp-block-heading">Initialisieren</h3>



<p><strong>Neben </strong>der <strong>simplen Deklaration oben</strong>, zeige ich Dir nun, <strong>wie </strong>Du ein <strong>String-Array initialisieren</strong>, <strong>sprich </strong>direkt mit Werten <strong>befüllen kannst</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs As String() = {"B2209", "B2355", "B2409"}</pre>



<h3 class="wp-block-heading">Index manuell angeben</h3>



<p>Jetzt <strong>geben wir </strong>den <strong>Index </strong>mal <strong>manuell </strong>an, um direkt <strong>via Zahl auf </strong>das jeweilige <strong>Element zuzugreifen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs = New String(2) {}
billNrs(0) = "B135"
billNrs(1) = "B136"
billNrs(2) = "B137"</pre>



<h3 class="wp-block-heading">Mit Schleife durchlaufen</h3>



<p>Nun <strong>durchlaufen </strong>wir das <strong>String-Array</strong> und können <strong>bei jedem Durchlauf</strong> den Wert für die <strong>jeweilige Rechnung setzen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">For i = LBound(billNrs) To UBound(billNrs)
    billNrs(i) = ' the new value!
Next</pre>



<h2 class="wp-block-heading">Werte anschließend hinzufügen – VB.NET Array</h2>



<p><strong>Natürlich kommt </strong>man nach der <strong>anfänglichen Deklaration</strong>, bzw. <strong>Initialisierung </strong>auch irgendwann <strong>an den Punkt</strong>, dass man auch <strong>danach </strong>noch <strong>Werte hinzufügen </strong>möchte.</p>



<p>Dafür verwenden wir die <strong><a href="https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/redim-statement" target="_blank" rel="noreferrer noopener">ReDim-Anweisung</a> </strong>in Kombination mit dem <strong>Preserve-Modifizierer</strong>, um die <strong>Kapazität </strong>des <strong>Arrays neu festzulegen </strong>und <strong>vorhandene Elemente </strong>zu behalten.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim billNrs(1) As String() = {"B1", "B2"}
ReDim Preserve billNrs(2)
billNrs(2) = "B3"</pre>



<p><strong>Nach </strong>der <strong>Abarbeitung </strong>unseres Codes <strong>befinden sich </strong>die Strings <strong>B1, B2 und B3 im String-Array</strong>.</p>



<h2 class="wp-block-heading">Downloads</h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link" href="/downloads/vbnet/ArrayExample.zip" target="_blank" rel="noreferrer noopener">ArrayExample.zip</a></div>
</div>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vbnet-array/">VB.NET Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/vbnet-array/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>VB String Array</title>
		<link>https://robbelroot.de/blog/vb-string-array/</link>
					<comments>https://robbelroot.de/blog/vb-string-array/#respond</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Tue, 13 Jul 2021 10:03:48 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Basic lernen]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[auflisten]]></category>
		<category><![CDATA[basic]]></category>
		<category><![CDATA[datenfeld]]></category>
		<category><![CDATA[datenfelder]]></category>
		<category><![CDATA[feld]]></category>
		<category><![CDATA[felder]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[listing]]></category>
		<category><![CDATA[mehrfach]]></category>
		<category><![CDATA[multiple]]></category>
		<category><![CDATA[string]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[visual]]></category>
		<category><![CDATA[visual basic]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=3847</guid>

					<description><![CDATA[<p>VB String Array Du bist bei deiner &#8222;VB String Array&#8222;-Recherche auf meine Seite gestoßen und möchtest wissen, wie man ein String&#8211;Array in Visual Basic erstellen kann? Eventuell weißt Du auch bereits, wie man ein String&#8211;Array erstellt, Dir fehlt aber vielleicht der Feinschliff, oder Du hättest gerne mehr Tipps? Vielleicht interessierst &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vb-string-array/">VB String Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array.png"><img loading="lazy" decoding="async" width="1024" height="536" src="https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array-1024x536.png" alt="VB String Array" class="wp-image-3852" title="VB String Array" srcset="https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array-1024x536.png 1024w, https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array-300x157.png 300w, https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array-768x402.png 768w, https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array-700x366.png 700w, https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array-332x174.png 332w, https://robbelroot.de/wp-content/uploads/2021/07/VB-String-Array.png 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>VB String Array</figcaption></figure>






<h2 class="wp-block-heading">VB String Array</h2>



<p>Du bist bei deiner &#8222;<strong>VB String Array</strong>&#8222;-Recherche auf <strong>meine Seite</strong> gestoßen und möchtest <strong>wissen</strong>, <strong>wie </strong>man ein <strong>String</strong>&#8211;<strong>Array </strong>in <strong>Visual Basic</strong> erstellen kann?</p>



<p><strong>Eventuell weißt </strong>Du auch <strong>bereits</strong>, wie man ein <strong>String</strong>&#8211;<strong>Array erstellt</strong>, Dir <strong>fehlt </strong>aber <strong>vielleicht </strong>der <strong>Feinschliff</strong>, oder Du hättest gerne <strong>mehr Tipps</strong>?</p>



<p>Vielleicht <strong>interessierst </strong>Du Dich noch für die <strong>folgenden Beiträge</strong>: <strong><a href="/blog/vb-array" target="_blank" rel="noreferrer noopener">Arrays allgemein</a></strong>.</p>



<h2 class="wp-block-heading">Wiederholung Arrays</h2>



<p><strong>Wie </strong>Du <strong>ggf</strong>. schon <strong>in </strong>meinem <strong>anderen Beitrag</strong>, <strong>oder durch </strong>Dein <strong>Vorwissen </strong>weißt, <strong>speichern Arrays mehrere Daten </strong>auf einmal.</p>



<p><strong>Vergleichbar </strong>ist das <strong>Array mit </strong>einer Art <strong>Liste</strong>, Welche <strong>gezählt</strong>, wie eine Variable <strong>veränderbar </strong>und <strong>auch iterierbar </strong>ist.</p>



<p>Schon in meinem anderen Beitrag habe ich auch <strong>darauf hingewiesen</strong>, dass es einige <strong>Kniffe wie </strong>z. B. <strong>in </strong>der <strong>Deklarationsweise gibt</strong>.</p>



<h2 class="wp-block-heading">Mögliche Szenarien</h2>



<p>Wenn man an ein <strong>String-Array</strong> denkt, bzw. die <strong>Notwendigkeit </strong>dazu hat, verbindet man das eventuell mit <strong>folgenden Szenarien</strong>: </p>



<ul class="wp-block-list"><li>Man könnte z. B. <strong>Rechnungsnummern </strong>(Welche durchaus auch Buchstaben enthalten können) <strong>durchlaufen </strong>wollen</li><li>Es ist die Notwendigkeit einer <strong>Auflistung von Namen </strong>vorhanden</li><li>Ein <strong>String soll </strong>zum Beispiel <strong>in </strong>seine <strong>Bestandteile zerlegt </strong>und in einem <strong>Array gespeichert </strong>werden</li><li>uvm.</li></ul>



<h2 class="wp-block-heading">Auflistung von Namen – VB String Array</h2>



<p>Schauen wir uns für das Beispiel mal ein <strong>konkretes Szenario </strong>an, dazu <strong>speichern </strong>wir verschiedene <strong>Vornamen in </strong>ein <strong>String-Array</strong>.</p>



<p><strong>Zuerst sehen </strong>wir uns dazu die <strong>Deklaration</strong>, bzw. die <strong>Initialisierung </strong>eines <strong>String-Arrays</strong> in <strong>Visual Basic</strong> an.</p>



<p><strong>Anschließend </strong>gehen wir <strong>weitere Operationen </strong>am Array <strong>wie </strong>das <strong>Hinzufügen </strong>weiterer <strong>Vornamen </strong>an.</p>



<h2 class="wp-block-heading">Deklaration eines String-Arrays</h2>



<p><strong>Wie </strong>gleich <strong>folgend, </strong>könnte die <strong>Deklaration </strong>eines String-Arrays <strong>aussehen</strong>.</p>



<p>Das <strong>bedeutet</strong>, dass das <strong>Array nicht </strong>bereits von <strong>vornherein </strong>seine <strong>Speicherkapazität festgelegt </strong>bekommt.</p>



<p><strong>Übersetzen </strong>könnte <strong>man </strong>die <strong>Zeile </strong>als: &#8222;<strong>Lege </strong>die <strong>Variable </strong>firstNames als <strong>String-Array</strong> fest.&#8220;</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim firstNames As String()</pre>



<h2 class="wp-block-heading">Initialisierung eines String-Arrays</h2>



<p>Nun <strong>folgt </strong>die <strong>Initialisierung </strong>eines <strong>String-Arrays</strong>.</p>



<p>Das <strong>bedeutet</strong>, wir <strong>deklarieren </strong>ebenfalls die <strong>Variable </strong>&#8222;firstNames&#8220; <strong>und</strong> <strong>weisen </strong>Ihr initial <strong>Werte</strong> <strong>zu</strong>.</p>



<p>Der <strong>höchste Index</strong> des <strong>Arrays </strong>ist nun somit der <strong>Eintrag </strong>namens &#8222;<strong>Cathrine</strong>&#8220; mit dem <strong>Wert 2</strong>. </p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Dim firstNames As String() = {"John", "Max", "Cathrine"}</pre>



<h2 class="wp-block-heading">Hinzufügen eines Elements in VB String Array</h2>



<p><strong>Nachdem </strong>das <strong>Array </strong>vorher entweder mit dem einem, oder dem Anderen Weg <strong>definiert wurde</strong>, <strong>kommt </strong>man <strong>vermutlich </strong>auch an den Punkt, <strong>weitere Elemente hinzufügen </strong>zu wollen.</p>



<p>Dafür müssen wir <strong>dem Array</strong>, was andernfalls einen Index-Fehler werfen würde <strong>sagen</strong>, dass dessen <strong>Kapazität </strong>mit Hilfe der <strong><a href="https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/redim-statement" target="_blank" rel="noreferrer noopener">ReDim-Anweisung</a></strong> <strong>neu definiert </strong>wird.</p>



<p><strong>Zusätzlich </strong>verwenden wir das &#8222;<strong>Preserve</strong>&#8222;-<strong>Schlüsselwort</strong>, um die <strong>vorherigen Einträge </strong>zu <strong>behalten</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ReDim Preserve firstNames(3)</pre>



<p><strong>Beachte </strong>hierbei, <strong>dass </strong>die <strong>Zahl </strong>in der Klammer – also die <strong>Dimension </strong>/ Kapazität – auch hier in der Form eines <strong>Indexes </strong>(also beginnend bei 0) <strong>angegeben </strong>werden <strong>muss</strong>.</p>



<p><strong>Danach </strong>können wir einen, oder mehrere weitere <strong>Namen </strong>in das <strong>String-Array hinzufügen</strong>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">firstNames(3) = "Michael"</pre>



<h2 class="wp-block-heading">Entfernen des letzten Elements</h2>



<p><strong>Um </strong>bei diesem String-Array z. B. den <strong>letzten Eintrag wieder entfernen </strong>zu können, können wir ebenfalls die &#8222;<strong>ReDim </strong>&amp; <strong>Preserve&#8220;</strong>-Kombination verwenden.</p>



<p>Hier zeige ich <strong>kurz </strong>eine <strong>Variante</strong>, wo ich die <strong>Zahl </strong>praktisch <strong>fest</strong> in den Code schreibe, <strong>nicht </strong>so <strong>prickelnd</strong>, <strong>aber funktionierend</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ReDim Preserve firstNames(2)</pre>



<p><strong>Etwas besser </strong>wäre es <strong>natürlich</strong>, wenn das Ganze <strong>dynamisch </strong>funktionieren würde, dazu können wir die <strong>Obergrenze </strong>einfach <strong>ausmachen und 1</strong> davon <strong>abziehen</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ReDim Preserve firstNames(UBound(firstNames) - 1)</pre>



<p><strong>Beachte </strong>hier, dass Du ggf. <strong>mit </strong>einer <strong>If-Abfrage</strong> <strong>abfangen </strong>musst, dass <strong>nicht </strong>nachher <strong>-1</strong> bei der Berechnung <strong>rumkommt</strong>.</p>



<h2 class="wp-block-heading">Entfernen des ersten Elements</h2>



<p>Hier <strong>noch </strong>ein kleines Beispiel, <strong>wie </strong>man statt dem letzten, das <strong>erste Element </strong>des String-Arrays <strong>entfernen </strong>kann.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="visualbasic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">For i = 1 To UBound(firstNames)
  firstNames(i - 1) = firstNames(i)
Next i
ReDim Preserve firstNames(UBound(firstNames) - 1)</pre>



<p><strong>Zuerst iterieren </strong>wir dafür <strong>beginnend </strong>bei <strong>1</strong> zum &#8222;<strong>Upper-Bound</strong>&#8222;, also der oberen &#8222;Index-Grenze&#8220; des <strong>Arrays</strong>.</p>



<p>In <strong>jedem Durchlauf </strong>der For-Schleife <strong>setzen </strong>wir an die jeweilige <strong>Index-Position &#8222;i-1&#8220;</strong>, den <strong>Wert </strong>der hinter <strong>des aktuellen i-Indexes</strong> steckt.</p>



<p>Anschließend <strong>korrigieren </strong>wir die <strong>Kapazität des Arrays</strong> durch die bekannte <strong>ReDim-Preserve</strong> Variante mit der <strong>UBound</strong>&#8211;<strong>Funktion</strong>.</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vb-string-array/">VB String Array</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/vb-string-array/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
