<?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>konsole Archive - Robert Skibbe</title>
	<atom:link href="https://robbelroot.de/blog/tag/konsole/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>alias RobbelRoot – Freelance Full Stack Developer .NET</description>
	<lastBuildDate>Fri, 04 Feb 2022 15:04:27 +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>konsole Archive - Robert Skibbe</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VB NET Tutorial 3 &#8211; Eingaben entgegennehmen &#038; verarbeiten</title>
		<link>https://robbelroot.de/blog/vb-net-tutorial-3-eingaben-entgegennehmen-verarbeiten/</link>
					<comments>https://robbelroot.de/blog/vb-net-tutorial-3-eingaben-entgegennehmen-verarbeiten/#comments</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Fri, 04 Feb 2022 15:03:09 +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[config]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[eingabe]]></category>
		<category><![CDATA[eingaben]]></category>
		<category><![CDATA[flag]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[konfiguration]]></category>
		<category><![CDATA[konsole]]></category>
		<category><![CDATA[parameter]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[readline]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vbnet]]></category>
		<category><![CDATA[verarbeiten]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[visual basic net]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=8365</guid>

					<description><![CDATA[<p>Verarbeitung von ersten Eingaben in die Konsole &#8211; VB NET Tutorial 3 Heyho und herzlich willkommen zurück zum VB NET Tutorial 3! Nachdem wir uns beim letzten Tutorial mit den Ausgaben beschäftigt haben, wechseln wir nun zu Eingaben. Bevor wir zu einer ausgereiften grafischen Oberfläche wechseln, arbeiten wir weiter mit &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vb-net-tutorial-3-eingaben-entgegennehmen-verarbeiten/">VB NET Tutorial 3 &#8211; Eingaben entgegennehmen &#038; verarbeiten</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Eingaben-in-die-Konsole-verarbeiten.jpg"><img fetchpriority="high" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Eingaben-in-die-Konsole-verarbeiten.jpg" alt="VB NET Tutorial 3 - Eingaben in die Konsole verarbeiten" class="wp-image-8376" title="VB NET Tutorial 3 - Eingaben in die Konsole verarbeiten"/></a><figcaption>VB NET Tutorial 3 &#8211; Eingaben in die Konsole verarbeiten</figcaption></figure>






<h2 class="wp-block-heading" id="verarbeitung-von-ersten-eingaben-in-die-konsole-vb-net-tutorial-3">Verarbeitung von ersten Eingaben in die Konsole &#8211; VB NET Tutorial 3</h2>



<p>Heyho und herzlich <strong>willkommen </strong>zurück <strong>zum VB NET Tutorial 3</strong>!</p>



<p><strong>Nachdem </strong>wir uns <strong>beim letzten Tutorial mit </strong>den <strong>Ausgaben </strong>beschäftigt haben, wechseln wir nun zu Eingaben.</p>



<p><strong>Bevor </strong>wir <strong>zu </strong>einer <strong>ausgereiften </strong>grafischen <strong>Oberfläche </strong>wechseln, <strong>arbeiten </strong>wir <strong>weiter mit </strong>der <strong>Konsolenanwendung</strong>.</p>



<p>Auch dort <strong>kennt man </strong>es z. B. <strong>von </strong>gewissen <strong>Konfigurationsprogrammen</strong>, dass man <strong>Eingaben zur Steuerung </strong>verwendet.</p>



<p>Dabei <strong>reicht </strong>es <strong>von einfachen </strong>&#8222;J/N&#8220;, also Ja/Nein <strong>Antworten bis </strong>hin zu sogenannten <strong>Flags </strong>wie &#8222;-force&#8220;, oder Ähnliches.</p>



<p>Diese <strong>meist als Parameter bezeichneten </strong>Daten <strong>werden </strong>ganz normal <strong>als Text </strong>in die Konsole <strong>eingegeben</strong>.</p>



<p><strong>Wie gewohnt </strong>müssen wir <strong>seitens </strong>der <strong>Konsole </strong>dann auf die <strong>Bestätigung </strong>durch z. B. &#8222;Enter&#8220; warten.</p>



<h2 class="wp-block-heading" id="eingaben-entgegennehmen-vb-net-tutorial-3">Eingaben entgegennehmen &#8211; VB NET Tutorial 3</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Interaktion-zwischen-Nutzer-und-Programm.jpg"><img decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Interaktion-zwischen-Nutzer-und-Programm.jpg" alt="VB NET Tutorial 3 - Interaktion zwischen Nutzer und Programm" class="wp-image-8378" title="VB NET Tutorial 3 - Interaktion zwischen Nutzer und Programm"/></a><figcaption>VB NET Tutorial 3 &#8211; Interaktion zwischen Nutzer und Programm</figcaption></figure>



<p>Um <strong>Programme verschiedenster Art </strong>die gewollten <strong>Sachen ausführen </strong>zu <strong>lassen </strong>müssen wir mit dem Nutzer interagieren.</p>



<p><strong>Dafür </strong>müssen wir ihm natürlich in irgendeiner Weise die <strong>Möglichkeit zur Kommunikation </strong>geben.</p>



<p>Ich spreche <strong>von </strong>der <strong>Kommunikation zwischen Programm und </strong>dem <strong>Nutzer </strong>selbst.</p>



<h3 class="wp-block-heading" id="moderne-anwendungen">Moderne Anwendungen</h3>



<p>Für gewöhnlich, bzw. <strong>in modernen Anwendungen </strong>passiert das meist <strong>anhand </strong>einer <strong>grafischen Oberfläche</strong>.</p>



<p><strong>Später werden </strong>wir uns natürlich auch noch <strong>mit </strong>richtigen, sogenannten <strong>GUIs beschäftigen</strong>.</p>



<p>Diese <strong>grafischen Nutzeroberflächen (graphical user interfaces) beinhalten</strong> meist <strong>Knöpfe</strong>, Tabellen, Dialoge <strong>und mehr</strong>.</p>



<p>Ich <strong>hatte schonmal </strong>in einem früheren Beitrag <strong>erwähnt</strong>, dass dies <strong>zum </strong>jetzigen <strong>Zeitpunkt </strong>aber <strong>noch zu kompliziert </strong>wäre.</p>



<p>Daher <strong>bleiben </strong>wir also erstmal <strong>bei </strong>den guten alten <strong>Konsolenanwendungen</strong>.</p>



<h3 class="wp-block-heading" id="konsolenanwendungen-altbacken">Konsolenanwendungen = Altbacken?</h3>



<p>Obwohl <strong>man </strong>vielleicht <strong>denken könnte</strong>, dass die <strong>Konsolenanwendungen altbacken </strong>sind, ist dem <strong>nicht so</strong>.</p>



<p>Viele <strong>moderne Tools verwenden </strong>immer noch <strong>Konsolenanwendungen</strong>.</p>



<p><strong>Darunter </strong>gibt es <strong>Fälle</strong>, in denen man damit gewisse <strong>Templates generieren </strong>kann.</p>



<p><strong>Auch Konfigurationen werden </strong>auf diese Art und Weise <strong>via Kommandozeile durchgeführt</strong>.</p>



<p>Besonders <strong>im Laufe Deiner </strong>Entwickler-<strong>Karriere wird </strong>wirst Du ganz viele dieser <strong>Kommandozeilen</strong>-Tools <strong>kennenlernen</strong>.</p>



<h3 class="wp-block-heading" id="bekannte-funktionen">Bekannte Funktionen</h3>



<p>Um <strong>Daten vom Nutzer </strong>in einer Konsolenanwendung <strong>entgegenzunehmen</strong>, benötigen wir Standardfunktionen.</p>



<p><strong>Diese </strong>haben wir auch <strong>schon </strong>im letzten Tutorial <strong>verwendet</strong>, zwar anders, aber naja trotzdem!</p>



<p><strong>Letztes Mal </strong>haben wir sie dafür <strong>benutzt</strong>, <strong>um</strong> das <strong>Programm anzuhalten </strong>und sich nicht (sofort) schließen zu lassen.</p>



<p>Allerdings <strong>können </strong>die Funktionen <strong>noch mehr</strong>, ansonsten wäre auch die Namensgebung quatsch.</p>



<p>Die <strong>beiden Funktionen</strong>, Welche ich meine <strong>sind</strong>:</p>



<ul class="wp-block-list"><li><strong>&#8222;<a href="https://docs.microsoft.com/de-de/dotnet/api/system.console.readline?view=net-6.0" target="_blank" rel="noreferrer noopener">Console.ReadLine</a>&#8222;</strong></li><li><strong>&#8222;<a href="https://docs.microsoft.com/de-de/dotnet/api/system.console.readkey?view=net-6.0" target="_blank" rel="noreferrer noopener">Console.ReadKey</a>&#8222;</strong></li></ul>



<h2 class="wp-block-heading" id="das-alphabet-oder-so-einen-buchstaben-verarbeiten-im-vb-net-tutorial-3">Das Alphabet oder so &#8211; Einen Buchstaben verarbeiten im VB NET Tutorial 3</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Buchstaben-entgegennehmen.jpg"><img decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Buchstaben-entgegennehmen.jpg" alt="VB NET Tutorial 3 - Buchstaben entgegennehmen" class="wp-image-8391" title="VB NET Tutorial 3 - Buchstaben entgegennehmen"/></a><figcaption>VB NET Tutorial 3 &#8211; Buchstaben entgegennehmen</figcaption></figure>



<p>Für <strong>unser erstes </strong>kleines <strong>Beispiel </strong>schauen wir uns die <strong>&#8222;ReadKey&#8220;-Funktion</strong> genauer an.</p>



<p><strong>Wundere</strong> <strong>Dich </strong>bitte übrigens <strong>nicht</strong>, <strong>wenn </strong>die <strong>beiden Wörter </strong>Methode &amp; Funktion manchmal <strong>gemischt verwendet </strong>werden.</p>



<p>Sie <strong>stehen indirekt für </strong>das <strong>Gleiche</strong>, da Sie <strong>mehr oder weniger verwandt</strong> sind.</p>



<p>Das <strong>Wort &#8222;Methode&#8220;</strong> <strong>ist </strong>praktisch der <strong>Überbegriff für Funktionen</strong> <strong>und </strong>sogenannten &#8222;<strong>Subs</strong>&#8222;, Welche später noch drankommen.</p>



<p>Im <strong>nächsten Schritt </strong>kannst Du ein <strong>neues Visual Studio Projekt</strong> (Konsolenanwendung) für dieses Tutorial erstellen.</p>



<p><strong>Falls </strong>Du <strong>nicht mehr weißt </strong>wie das geht, <strong>schaue </strong>am besten <strong>nochmal </strong>einen Schritt <strong>zurück</strong>.</p>



<h3 class="wp-block-heading" id="die-readline-funktion-im-einsatz">Die ReadLine-Funktion im Einsatz</h3>



<p>Nun <strong>werden wir </strong>die &#8222;<strong>ReadLine</strong>&#8222;-<strong>Funktion </strong>mal so einsetzen, wie Sie auch eingesetzt werden sollte.</p>



<p>Wir <strong>nehmen </strong>Zeichen <strong>entgegen </strong>und geben Diese anschließend aus.</p>



<p>Verwende <strong>dafür </strong>im ersten Schritt den <strong>folgenden Code</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="">Console.WriteLine("Gib etwas ein :)")
Dim eingabe = Console.ReadLine()
Console.WriteLine("Du hast " &amp; eingabe &amp; " eingegeben")
Console.ReadLine()</pre>



<p>Ich <strong>benutze </strong>hier <strong>absichtlich </strong>nicht die <strong>&#8222;ReadKey&#8220;-Funktion</strong>, <strong>da </strong>Diese noch <strong>wesentlich komplizierter </strong>sein würde.</p>



<p>Dort <strong>bekommen wir anderweitige Daten</strong>, womit wir uns später noch befassen werden.</p>



<p><strong>Führe </strong>am besten den <strong>Code aus und gebe </strong>in der Konsole einen Buchstaben wie &#8222;<strong>b</strong>&#8220; <strong>ein</strong>, <strong>bestätige </strong>anschließend <strong>mit </strong>&#8222;<strong>Enter</strong>&#8222;.</p>



<p>Dann <strong>wirst </strong>Du die <strong>Ausgabe </strong>a la &#8222;Du hast &lt;deinBuchstabe&gt; eingegeben&#8220; <strong>sehen </strong>können.</p>



<p>Ich <strong>möchte </strong>Dir <strong>auch </strong>hier mal eine <strong>andere Variante </strong>für die Verkettung von Strings <strong>zeigen</strong>.</p>



<h3 class="wp-block-heading" id="verwendung-der-string-interpolation">Verwendung der String-Interpolation</h3>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Zeichen-entgegennehmen-und-ausgeben.png"><img loading="lazy" decoding="async" width="458" height="261" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Zeichen-entgegennehmen-und-ausgeben.png" alt="VB NET Tutorial 3 - Zeichen entgegennehmen und ausgeben" class="wp-image-8419" title="VB NET Tutorial 3 - Zeichen entgegennehmen und ausgeben"/></a><figcaption>VB NET Tutorial 3 &#8211; Zeichen entgegennehmen und ausgeben</figcaption></figure>



<p>Es <strong>ist dann </strong>so gesehen <strong>keine Verkettung </strong>mehr, kommt aber auf das gleiche Ergebnis hinaus.</p>



<p>Man <strong>nennt diese </strong>Variante &#8222;<strong>String-Interpolation</strong>&#8220; und Sie <strong>vereinfacht </strong>viele Dinge.</p>



<p>Wir <strong>sparen uns </strong>dadurch im <strong>Endeffekt </strong>dieses Ganze &#8222;&amp;, &amp;, &amp;&#8220;, <strong>was </strong>es durchaus <strong>angenehmer gestaltet</strong>.</p>



<p><strong>Nehmen </strong>wir also <strong>obigen Code </strong>noch einmal, nur dieses Mal <strong>mit </strong>der <strong>String-Interpolation</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="">Console.WriteLine("Gib etwas ein :)")
Dim eingabe = Console.ReadLine()
Console.WriteLine($"Du hast {eingabe} eingegeben")
Console.ReadLine()</pre>



<p><strong>Wie </strong>Du <strong>sehen kannst</strong>, kann man dafür <strong>ganz</strong> <strong>einfach</strong> ein <strong>Dollar-Zeichen</strong> <strong>vor </strong>den <strong>String </strong>setzen.</p>



<p><strong>Anschließend kannst </strong>Du die <strong>Variable in geschweiften Klammern </strong>setzen, dadurch wird die Variable in einen String umgewandelt.</p>



<p>Wir <strong>haben in diesem Fall schon </strong>einen <strong>String </strong>vorliegen, <strong>weshalb </strong>die <strong>Umwandlung </strong>hier eigentlich <strong>nicht </strong>wirklich <strong>nötig </strong>ist.</p>



<p><strong>Später kommen </strong>aber noch wesentlich <strong>komplexere Objekte</strong>, <strong>wo </strong>wir die <strong>Umwandlung </strong>in einen String dann <strong>selbst gestalten </strong>können.</p>



<h3 class="wp-block-heading" id="darstellung-von-anfuhrungszeichen">Darstellung von Anführungszeichen</h3>



<p>Man <strong>könnte </strong>die <strong>Ausgabe </strong>auch noch etwas <strong>schöner gestalten</strong>.</p>



<p>Ich <strong>dachte </strong>da <strong>an Anführungszeichen</strong>, Welche nochmal <strong>genauer hervorheben</strong>, was wir eingegeben haben.</p>



<p><strong>Natürlich </strong>können wir das erstmal <strong>mit </strong>den <strong>einfachen Anführungszeichen </strong>gestalten:</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="">' ...
Console.WriteLine($"Du hast '{eingabe}' eingegeben")
' ...</pre>



<p>Um <strong>doppelte Anführungszeichen verwenden </strong>zu können, <strong>müssen wir </strong>Diese &#8222;<strong>escapen</strong>&#8222;.</p>



<p><strong>Wenn </strong>Du <strong>versuchst</strong>, die <strong>Anführungszeichen </strong>wie die Einfachen zu <strong>platzieren</strong>, <strong>wirst </strong>Du einen <strong>Fehler bekommen</strong>.</p>



<p>Damit das funktioniert, <strong>musst </strong>Du die <strong>Anführungszeichen </strong>einfach &#8222;<strong>doppeln</strong>&#8222;:</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="">' ...
Console.WriteLine($"Du hast ""{eingabe}"" eingegeben")
' ...</pre>



<p>Das <strong>liegt daran</strong>, <strong>dass </strong>der <strong>Compiler </strong>sonst <strong>denken würde</strong>, <strong>dass </strong>der <strong>String </strong>am ersten Zeichen <strong>endet</strong>.</p>



<h2 class="wp-block-heading" id="auf-den-datentyp-kommt-es-an-vb-net-tutorial-3">Auf den Datentyp kommt es an &#8211; VB NET Tutorial 3</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Eins-ungleich-eins.jpg"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Eins-ungleich-eins.jpg" alt="VB NET Tutorial 3 - Eins ungleich eins" class="wp-image-8429" title="VB NET Tutorial 3 - Eins ungleich eins"/></a><figcaption>VB NET Tutorial 3 &#8211; Eins ungleich eins</figcaption></figure>



<p><strong>Bisher </strong>haben wir <strong>bewusst </strong>nur <strong>mit Strings gearbeitet</strong>, aber nun wird es <strong>Zeit für mehr</strong>!</p>



<p><strong>Falls </strong>Du <strong>zwischendurch </strong>einmal <strong>versucht </strong>hast <strong>Zahlen </strong>einzugeben, <strong>wird </strong>es <strong>auf </strong>den <strong>ersten Blick funktioniert </strong>haben.</p>



<p>Das <strong>liegt daran</strong>, <strong>dass </strong>wir einen <strong>String einlesen und </strong>letztendlich auch einen <strong>String </strong>wieder <strong>ausgeben</strong>.</p>



<p>Also <strong>keine große Magie</strong>, <strong>könnte man </strong>auf den ersten Blick <strong>meinen</strong>.</p>



<p><strong>Leider </strong>ist es <strong>nicht ganz </strong>so <strong>einfach</strong>, da eine <strong>Zahl im Hintergrund </strong>natürlich <strong>anders </strong>verarbeitet werden möchte.</p>



<h3 class="wp-block-heading" id="apfel-sind-keine-birnen">Äpfel sind keine Birnen..</h3>



<p><strong>Wenn </strong>wir z. B. eine <strong>simple Addition </strong>durchführen <strong>wollen</strong>, <strong>brauchen wir </strong>immerhin <strong>2 tatsächliche Zahlen</strong>.</p>



<p><strong>Bisher </strong>lesen wir <strong>alles aber nur </strong>im Zeichenfolgen-Format (<strong>String</strong>) ein.</p>



<p>Diese <strong>kann man </strong>letztendlich <strong>nur verketten</strong>, aber leider <strong>nicht </strong>korrekt <strong>addieren</strong>.</p>



<style>
.info-banner {
  background: #fff9bb;
  padding: 2em;
  border-radius: 0.5em;
}
</style>



<p class="info-banner">Ich <strong>würde </strong>Dir hier <strong>dringend empfehlen </strong>eine gewisse <strong>Einstellung in Visual Studio</strong> <strong>festzulegen</strong>. Sie <strong>verhindert </strong>die <strong>unsaubere Arbeit </strong>mit Datentypen von Deinen Anfängen an. Somit <strong>gewöhnst </strong>Du <strong>Dir </strong>von vorne rein <strong>einen sauberen Stil </strong>mit Datentypen <strong>an</strong>. <strong>Schaue </strong>dafür <strong>weiter unten </strong>in den Beitrag.</p>



<p>So <strong>wäre </strong>z. B. das <strong>Ergebnis </strong>aus &#8222;1 + 1&#8220; praktisch &#8222;11&#8220; und nicht 2..</p>



<p>Das <strong>wird besonders in anderen Programmiersprachen </strong>wie C#, Java, oder ähnlichen Sprachen <strong>klar</strong>.</p>



<p>Dort ist der <strong>Verkettungsoperator meistens </strong>der <strong>Gleiche wie </strong>Der für die mathematische <strong>Addition</strong>.</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Zahlen-in-Konsole-einlesen-VB-NET-Tutorial-3.png"><img loading="lazy" decoding="async" width="504" height="266" src="https://robbelroot.de/wp-content/uploads/2022/02/Zahlen-in-Konsole-einlesen-VB-NET-Tutorial-3.png" alt="Zahlen in Konsole einlesen" class="wp-image-8424" title="Zahlen in Konsole einlesen"/></a><figcaption>Zahlen in Konsole einlesen</figcaption></figure>



<h2 class="wp-block-heading" id="ein-kleiner-taschenrechner-werte-konvertieren">Ein kleiner Taschenrechner &#8211; Werte konvertieren</h2>



<p><strong>Nun</strong>, <strong>wo </strong>wir <strong>wissen</strong>, <strong>dass </strong>die <strong>Arbeit mit </strong>den richtigen <strong>Datentypen </strong>aus verschiedenen Gründen <strong>wichtig ist</strong>, geht es <strong>weiter</strong>.</p>



<p><strong>Bedenke </strong>wie gesagt, <strong>dass Äpfel </strong>eben <strong>keine Birnen</strong>, also z. B. <strong>Strings </strong>eben <strong>keine Integer sind</strong>.</p>



<p><strong>Auch wenn Beide </strong>hier erstmal visuell <strong>gleich erscheinen</strong>, sind sie etwas Anderes!</p>



<h3 class="wp-block-heading" id="eine-kleine-addition-programmieren">Eine kleine Addition programmieren</h3>



<p><strong>Machen </strong>wir uns <strong>nun </strong>im nächsten Schritt mal <strong>ran</strong>, so <strong>richtig was mit </strong>den <strong>Eingaben </strong>des Nutzers <strong>anzufangen</strong>.</p>



<p>Ich <strong>dachte </strong>hier <strong>an </strong>einen <strong>kleinen Taschenrechner</strong>, Welcher <strong>allerdings erstmal </strong>nur <strong>Additionen </strong>unterstützt.</p>



<p><strong>Gerne kannst </strong>Du natürlich <strong>versuchen</strong>, den <strong>Taschenrechner </strong>in Eigenarbeit zu <strong>erweitern</strong>.</p>



<p>Das <strong>wäre sicherlich </strong>eine <strong>tolle Übung </strong>und bringt Dich ggf. das ein oder andere Mal ins Schwitzen.</p>



<p>Aber <strong>nun gut</strong>, fangen wir mit den <strong>ersten Schritten </strong>für den Taschenrechner an.</p>



<p>Wir <strong>brauchen folgendes</strong>:</p>



<ul class="wp-block-list"><li>Eine <strong>Aufforderung für </strong>die <strong>Eingabe </strong>zweier Zahlen</li><li>Die <strong>Möglichkeit </strong>diese Zahlen <strong>entgegenzunehmen</strong></li><li>Dabei <strong>müssen </strong>wir <strong>auf </strong>den tatsächlichen <strong>Datentyp achten</strong></li><li>Wir <strong>addieren </strong>beide <strong>Zahlen</strong></li><li>Und <strong>geben </strong>das <strong>Ergebnis </strong>anschließend <strong>aus</strong></li></ul>



<h3 class="wp-block-heading" id="auf-los-geht-s-los-die-aufforderung-an-den-nutzer">Auf los geht&#8217;s los &#8211; Die Aufforderung an den Nutzer</h3>



<p>Als <strong>erstes brauchen </strong>wir also eine Art <strong>Aufforderung</strong>, <strong>damit </strong>der <strong>Nutzer </strong>der Konsole auch <strong>weiß</strong>, <strong>was </strong>er <strong>tun </strong>soll.</p>



<p>Wir <strong>geben also </strong>im ersten Schritt eine <strong>Nachricht </strong>via &#8222;Console.WriteLine&#8220; <strong>aus</strong>.</p>



<p><strong>Vergiss </strong>anschließend <strong>nicht</strong>, den &#8222;Console.<strong>ReadLine</strong>&#8222;-Befehl zu <strong>verwenden</strong>, <strong>damit </strong>das <strong>Programm nicht beendet </strong>wird.</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="">Console.WriteLine("Willkommen im kleinen Taschenrechner")
Console.WriteLine("Bitte gib zwei Ganz- oder Dezimalzahlen ein und bestätige Sie jeweils mit Enter")</pre>



<h3 class="wp-block-heading" id="ein-neuer-datentyp-ohoh">Ein neuer Datentyp &#8211; ohoh!</h3>



<p>Im <strong>gleichen Schritt </strong>dachte ich mir, <strong>könnte </strong>man auch einen <strong>neuen Datentyp bekannt </strong>machen.</p>



<p>Ich denke wir <strong>möchten ungern nur mit Ganzzahlen </strong>a la &#8222;8&#8220;, &#8222;9&#8220;, etc. <strong>arbeiten</strong>, daher brauchen wir den Datentyp &#8222;<strong><a href="https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/data-types/decimal-data-type" target="_blank" rel="noreferrer noopener">Decimal</a></strong>&#8222;.</p>



<p><strong>Um eine </strong>Addition <strong>durchzuführen benötigen wir </strong>ja <strong>zwei Summanden</strong>, Welche <strong>dann </strong>die <strong>Summe </strong>ergeben.</p>



<p>Wir <strong>definieren diese </strong>Summanden mit Absicht <strong>auf zwei verschiedene Weisen</strong>, damit man Beide <strong>nicht vergisst</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 summandA As Decimal
Dim summandB = 0D</pre>



<p>Der <strong>erste Summand </strong>wird <strong>per Deklaration </strong>definiert, wobei auch hier der <strong>Standardwert </strong>&#8222;<strong>0</strong>&#8220; gezogen wird.</p>



<p><strong>Anschließend </strong>wird der <strong>zweite Summand mit </strong>einem <strong>Literal und </strong>der daraus resultierenden <strong>Inferenz initialisiert</strong>.</p>



<p><strong>Achte darauf</strong>, dass Du <strong>nicht unbeabsichtigt </strong>&#8222;0.0&#8220; schreibst, denn <strong>dann wird </strong>daraus ein <strong>anderer Datentyp</strong>.</p>



<p><strong>Wenn </strong>Du die &#8222;<strong>0.0</strong>&#8220; Schreibweise <strong>bevorzugst</strong>, <strong>kannst </strong>Du in unserem Fall hier &#8222;<strong>0.0D</strong>&#8220; <strong>benutzen</strong>.</p>



<p>Du <strong>wirst </strong>durch <strong>Visual Studio</strong> ggf. <strong>auch </strong>eine <strong>Meldung </strong>a la &#8222;unnötige Wertzuweisung summandB&#8220; <strong>bekommen</strong>.</p>



<p>Das <strong>ist deshalb so</strong>, <strong>weil </strong>die <strong>Wertzuweisung </strong>eben <strong>unnötig </strong>ist, denn Sie <strong>wird </strong>ein <strong>paar Zeilen weiter </strong>sowieso <strong>überschrieben</strong>.</p>



<p>Ich <strong>habe </strong>es aber wie bereits erwähnt <strong>deshalb so </strong>gemacht, <strong>damit </strong>Du Dich nochmal <strong>an </strong>die <strong>beiden </strong>Varianten der <strong>Variablendefinition erinnerst</strong>.</p>



<h3 class="wp-block-heading" id="die-eingaben-der-dezimal-zahlen-programmieren">Die Eingaben der (Dezimal-) Zahlen programmieren</h3>



<p><strong>Nun </strong>gehen wir hin und <strong>fragen </strong>tatsächlich <strong>nach </strong>den <strong>Zahlen</strong>, das machen wir <strong>wie gewohnt mit </strong>&#8222;Console.ReadLine&#8220;.</p>



<p>Du <strong>wirst Dich jetzt </strong>(hoffentlich) ggf. fragen: &#8222;<strong>Ähm</strong>, aber <strong>dann bekommen wir </strong>doch einen <strong>String</strong>!?&#8220;.</p>



<p>Das <strong>fragst </strong>Du Dich <strong>zurecht</strong>, <strong>aber </strong>diesen String <strong>werden wir </strong>gleich in eine Dezimalzahl <strong>umwandeln</strong>!</p>



<p><strong>Gängige Umwandlungen</strong> können wir <strong>mit </strong>der <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.convert?view=net-6.0" target="_blank" rel="noreferrer noopener">&#8222;Convert&#8220;-Klasse</a></strong> durchführen.</p>



<p><strong>Später werden wir </strong>natürlich noch <strong>genau auf </strong>das ganze <strong>Ding namens </strong>&#8222;<strong>Klasse</strong>&#8220; <strong>eingehen</strong>, aber aktuell passt das erstmal so.</p>



<p><strong>Achte darauf</strong>, dass Du im Visual Studio <strong>oben eventuell </strong>die Zeile hier stehen hast (über &#8222;Module Program&#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="">Imports System</pre>



<p>Es <strong>könnte </strong>allerdings <strong>auch sein </strong>(bzw. wird es in diesem Fall), <strong>dass es </strong>auch <strong>ohne funktioniert</strong>.</p>



<p>Dieses <strong>Ding namens </strong>&#8222;Convert&#8220; <strong>befindet sich </strong>nämlich <strong>wie </strong>ein <strong>Buch </strong>praktisch <strong>in </strong>diesem <strong>Regal </strong>namens &#8222;<strong>System</strong>&#8222;.</p>



<p><strong>Mehr Gedanken </strong>solltest Du Dir zu diesem Zeitpunkt noch <strong>nicht darüber machen </strong>&#8211; vertrau&#8216; mir!</p>



<p>Schreibe also nun <strong>folgende Zeilen hinzu</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 eingabeA = Console.ReadLine()
summandA = Convert.ToDecimal(eingabeA)</pre>



<p>Mit der <strong>Ersten </strong>dieser <strong>Zeilen holen </strong>wir uns die <strong>Eingabe </strong>des Nutzers.</p>



<p><strong>Beachte </strong>hier, <strong>dass </strong>wir aktuell wirklich <strong>nur Zahlen erwarten</strong>, da wir eine Behandlung von <strong>Fehlern noch nicht </strong>haben!</p>



<p>Die <strong>zweite Zeile wandelt </strong>dann die &#8222;<strong>eingabeA</strong>&#8220; durch die Klasse &#8222;Convert&#8220; <strong>und </strong>deren <strong>Funktion </strong>namens &#8222;<a href="https://docs.microsoft.com/de-de/dotnet/api/system.convert.todecimal?view=net-6.0" target="_blank" rel="noreferrer noopener">ToDecimal</a>&#8220; <strong>in </strong>die <strong>Dezimalzahl</strong>.</p>



<p>Das <strong>wiederholen </strong>wir dann dementsprechend <strong>für </strong>die <strong>zweite Zahl</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 eingabeB = Console.ReadLine()
summandB = Convert.ToDecimal(eingabeB)</pre>



<p>Ggf. <strong>möchtest </strong>Du auch <strong>noch </strong>irgendwelche <strong>Nachrichten </strong>zwischendurch <strong>ausgeben</strong>, a la &#8222;Hey, jetzt gib Zahl 1/2 ein&#8220;.</p>



<h3 class="wp-block-heading" id="ergebnis-ausgeben">Ergebnis ausgeben</h3>



<p>Zum <strong>Schluss erfassen </strong>wir das <strong>Ergebnis </strong>mit:</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 ergebnis = summandA + summandB</pre>



<p>Das <strong>Ergebnis </strong>einer <strong>Addition aus </strong>2 <strong>Dezimalzahlen ist</strong> natürlich eine <strong>Dezimalzahl</strong>.</p>



<p>Die <strong>Typinferenz für </strong>die <strong>Variable </strong>&#8222;ergebnis&#8220; ist daher <strong>natürlich auch </strong>dementsprechend eine <strong>Zahl </strong>vom Typ &#8222;Decimal&#8220;.</p>



<p>Im <strong>letzten Schritt </strong>kannst Du dann das <strong>Ergebnis </strong>an den Nutzer <strong>ausgeben</strong>.</p>



<p><strong>Beachte</strong>, <strong>dass ich </strong>dafür auch wieder die <strong>String-Interpolation</strong> (mit dem Dollar vorn und den geschweiften Klammern) <strong>nutze</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="">Console.WriteLine($"Das Ergebnis von {summandA} + {summandB} = {ergebnis}")</pre>



<p><strong>Alternativ </strong>könnte es <strong>auch so </strong>funktionieren:</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="">Console.WriteLine("Das Ergebnis von " &amp; summandA &amp; " + " &amp; summandB &amp; " = " &amp; ergebnis)</pre>



<p><strong>Natürlich solltest </strong>Du die grundsätzliche <strong>Verkettung von Strings beherrschen</strong>, allerdings ist obige Variante einfacher.</p>



<p>Man <strong>sieht </strong>ganz <strong>klar</strong>, <strong>wie </strong>man <strong>ohne </strong>die ganzen <strong>Unterbrechungen und </strong>&#8222;&amp;&#8220;-<strong>Zeichen auskommen </strong>kann.</p>



<h2 class="wp-block-heading" id="die-richtige-einstellung-von-vorne-herein">Die richtige Einstellung – von vorne herein!</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Die-richtige-Einstellung.jpg"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-3-Die-richtige-Einstellung.jpg" alt="VB NET - Die richtige Einstellung" class="wp-image-8438" title="VB NET - Die richtige Einstellung"/></a><figcaption>VB NET Die richtige Einstellung</figcaption></figure>



<p><strong>Wie oben </strong>schonmal <strong>erwähnt</strong>, <strong>würde ich </strong>Dir gerne eine gewisse <strong>Visual Studio Einstellung</strong> ans Herz legen.</p>



<p><strong>Diese sorgt </strong>von vorne rein <strong>für </strong>einen <strong>saubereren Umgang </strong>mit Datentypen.</p>



<p><strong>Somit </strong>ist das <strong>Jonglieren mit Datentypen </strong>sofort <strong>Geschichte </strong>und wir verhindern es, dass Du es Dir falsch angewöhnst.</p>



<p><strong>Viele Anfänger </strong>im VB NET-Bereich <strong>gewöhnen sich </strong>von vorn herein einen <strong>schlechten Stil </strong>mit Datentypen an.</p>



<p>Das ist unter anderem auch <strong>ein Grund</strong>, <strong>weshalb Visual Basic NET</strong> von <strong>einigen </strong>anderen <strong>Programmierern verpönt </strong>wird.</p>



<p><strong>Lass Dich </strong>davon allerdings <strong>nicht abschrecken</strong>, da VB NET eine großartige Programmiersprache ist.</p>



<p><strong>Wie bei vielen Werkzeugen kommt </strong>es einfach darauf <strong>an</strong>, <strong>wie </strong>man es <strong>verwendet</strong>!</p>



<h3 class="wp-block-heading" id="die-option-strict-einstellung-global-setzen">Die &#8222;Option Strict&#8220;-Einstellung global setzen</h3>



<p>Eins vorweg: Wir <strong>könnten </strong>die <strong>Einstellung auch projektbezogen setzen</strong>.</p>



<p><strong>Allerdings </strong>ist das meiner Meinung nach <strong>nicht </strong>wirklich <strong>sinnvoll</strong>, da man Sie immer verwenden sollte.</p>



<p><strong>Gehe </strong>nun <strong>auf </strong>den <strong>Punkt </strong>&#8222;<strong>Extras</strong>&#8222;, oben <strong>im Visual Studio</strong> und klappe Diesen auf.</p>



<p><strong>Wähle </strong>danach den Punkt &#8222;<strong>Optionen</strong>&#8220; und <strong>öffne </strong>Diese.</p>



<p><strong>Klicke links </strong>außen <strong>auf </strong>die Einstellungen namens &#8222;<strong>Projekte und Projektmappen</strong>&#8220; <strong>und </strong>danach auf &#8222;<strong>VB-Standard</strong>&#8222;.</p>



<p><strong>Anschließend </strong>kannst Du die &#8222;<strong>Option Strict</strong>&#8222;- Einstellung <strong>auf </strong>&#8222;<strong>On</strong>&#8220; stellen.</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Option-Strict-On-Einstellung.png"><img loading="lazy" decoding="async" width="743" height="435" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Option-Strict-On-Einstellung.png" alt="VB NET Option Strict On Einstellung" class="wp-image-8440" title="VB NET Option Strict On Einstellung"/></a><figcaption>VB NET Option Strict On Einstellung</figcaption></figure>



<p><strong>Nun </strong>bist Du <strong>typensicher</strong>, herzlichen <strong>Glückwunsch</strong>!</p>



<p><strong>Beachte </strong>jedoch, dass die <strong>Einstellung </strong>sich <strong>nur auf künftig </strong>erstellte <strong>Projekte </strong>auswirkt.</p>



<p><strong>Alte Projekte</strong>, <strong>oder </strong>Projekte von <strong>Dritten können </strong>diese Einstellung immer noch <strong>überschreiben</strong>!</p>



<h2 class="wp-block-heading" id="fazit">Fazit</h2>



<p>Im <strong>heutigen Beitrag </strong>haben wir einen <strong>kleinen </strong>Taschenrechner programmiert, Welcher Additionen durchführen kann.</p>



<p><strong>Dabei </strong>mussten wir uns an einen <strong>neuen Datentyp </strong>namens &#8222;<strong>Decimal</strong>&#8220; heranwagen, <strong>damit </strong>wir <strong>auch </strong>mit <strong>Dezimalzahlen </strong>arbeiten konnten.</p>



<p><strong>Nach </strong>der <strong>Berechnung </strong>haben wir das <strong>Ergebnis </strong>durch <strong>String-Interpolation</strong> ausgegeben.</p>



<p><strong>Zusätzlich </strong>haben wir eine <strong>wichtige Einstellung </strong>im Visual Studio <strong>konfiguriert</strong>: &#8222;Option Strict&#8220;.</p>



<p>Diese <strong>sorgt dafür</strong>, dass wir uns <strong>weiterhin </strong>einen <strong>sauberen Umgang mit Datentypen </strong>angewöhnen.</p>



<h2 class="wp-block-heading" id="kompletter-code">Kompletter Code</h2>



<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="">Module Program

    Sub Main(args As String())

        'Console.WriteLine("Gib etwas ein :)")
        'Dim eingabe = Console.ReadLine()
        'Console.WriteLine($"Du hast ""{eingabe}"" eingegeben")
        'Console.ReadLine()

        Console.WriteLine("Willkommen in meinem kleinen Taschenrechner")
        Console.WriteLine("Aktuell kann Er nur Additionen :P")
        Console.WriteLine()

        Dim summandA As Decimal
        Dim summandB = 0D

        Console.WriteLine("Bitte gib die erste Zahl ein:")
        Dim eingabeA = Console.ReadLine()
        summandA = Convert.ToDecimal(eingabeA)
        Console.WriteLine("Danke, nun gib bitte auch nochmal die zweite Zahl ein:")

        Dim eingabeB = Console.ReadLine()
        summandB = Convert.ToDecimal(eingabeB)

        Dim ergebnis = summandA + summandB
        Console.WriteLine($"Das Ergebnis von {summandA} + {summandB} = {ergebnis}")
        ' Console.WriteLine("Das Ergebnis von " &amp; summandA &amp; " + " &amp; summandB &amp; " = " &amp; ergebnis)

    End Sub

End Module</pre>



<h2 class="wp-block-heading" id="downloads">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="https://bit.ly/vbnet-tutorial-3-download" target="_blank" rel="noreferrer noopener">VBTutorial3_DE.zip</a></div>
</div>



<h2 class="wp-block-heading" id="weiterfuhrende-links">Weiterführende Links</h2>



<ul class="wp-block-list"><li>weiter zu Tutorial 4 &#8211; <em>folgt noch</em></li><li><strong><a href="https://robbelroot.de/blog/backgroundworker-beispiel-in-vb-net/" target="_blank" rel="noreferrer noopener">VB NET BackgroundWorker Beispiel</a></strong></li><li><strong><a href="https://robbelroot.de/blog/vb-net-tutorial-2-erste-ausgaben-auf-der-konsole/" target="_blank" rel="noreferrer noopener">zurück zu Tutorial 2</a></strong></li></ul>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vb-net-tutorial-3-eingaben-entgegennehmen-verarbeiten/">VB NET Tutorial 3 &#8211; Eingaben entgegennehmen &#038; verarbeiten</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/vb-net-tutorial-3-eingaben-entgegennehmen-verarbeiten/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>VB NET Tutorial 2 &#8211; Erste Ausgaben auf der Konsole</title>
		<link>https://robbelroot.de/blog/vb-net-tutorial-2-erste-ausgaben-auf-der-konsole/</link>
					<comments>https://robbelroot.de/blog/vb-net-tutorial-2-erste-ausgaben-auf-der-konsole/#comments</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Thu, 03 Feb 2022 22:45:03 +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[ausgabe]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[datentyp]]></category>
		<category><![CDATA[datentypen]]></category>
		<category><![CDATA[erweitert]]></category>
		<category><![CDATA[konsole]]></category>
		<category><![CDATA[output]]></category>
		<category><![CDATA[teil]]></category>
		<category><![CDATA[teil 2]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[tutorial 2]]></category>
		<category><![CDATA[variable]]></category>
		<category><![CDATA[variablen]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[vbnet]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[write]]></category>
		<category><![CDATA[writeline]]></category>
		<guid isPermaLink="false">https://robbelroot.de/?p=8243</guid>

					<description><![CDATA[<p>VB NET Tutorial 2 &#8211; Ausgaben &#38; mehr Datentypen Willkommen im VB NET Tutorial 2, wo wir weiter in die Welt der Programmierung wagen. Nachdem wir uns im letzten Tutorial mit dem Einstieg in die Variablen beschäftigt haben, geht es hier weiter. Eigentlich wollte ich hier auch schon mit den &#8230;</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vb-net-tutorial-2-erste-ausgaben-auf-der-konsole/">VB NET Tutorial 2 &#8211; Erste Ausgaben auf der Konsole</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Erweiterte-Variablen-und-Ausgaben.jpg"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Erweiterte-Variablen-und-Ausgaben.jpg" alt="VB NET Tutorial 2 - Erweiterte Variablen und Ausgaben" class="wp-image-8246" title="VB NET Tutorial 2 - Erweiterte Variablen und Ausgaben"/></a><figcaption>VB NET Tutorial 2 &#8211; Erweiterte Variablen und Ausgaben</figcaption></figure>






<h2 class="wp-block-heading" id="vb-net-tutorial-2-ausgaben-mehr-datentypen">VB NET Tutorial 2 &#8211; Ausgaben &amp; mehr Datentypen</h2>



<p>Willkommen im <strong>VB NET Tutorial 2</strong>, wo wir <strong>weiter in </strong>die Welt der <strong>Programmierung </strong>wagen.</p>



<p><strong>Nachdem </strong>wir uns <strong>im letzten Tutorial mit </strong>dem <strong>Einstieg </strong>in die <strong>Variablen </strong>beschäftigt haben, geht es hier weiter.</p>



<p class="info-banner"><strong>Eigentlich wollte </strong>ich <strong>hier </strong>auch schon <strong>mit </strong>den <strong>Variablen weiter machen</strong>, aber ich glaube, das <strong>wäre </strong>dann <strong>zu viel </strong>gewesen. Daher <strong>fokussieren </strong>wir <strong>uns </strong>lieber erstmal <strong>auf </strong>die <strong>Konsole und </strong>die <strong>Verkettung von Strings</strong>. <strong>Dafür müssen </strong>wir natürlich auch noch ein <strong>neues Projekt </strong>aufsetzen, etc.</p>



<style>
.info-banner {
  background: #fff9bb;
  padding: 2em;
  border-radius: 0.5em;
}
</style>



<p><strong>Bisher </strong>haben wir auch <strong>leider </strong>noch <strong>nicht </strong>wirklich was von unseren <strong>Daten gesehen</strong>.</p>



<p>Wir <strong>definierten</strong>, <strong>deklarierten </strong>und <strong>initialisierten</strong>, aber <strong>haben </strong>davon <strong>nicht viel mitbekommen</strong>.</p>



<p>Der <strong>Code </strong>im Visual Studio, bzw. in Programmen <strong>verläuft </strong>generell <strong>linear</strong>.</p>



<p><strong>Zeilenweise wurden </strong>unsere kleinen <strong>Anweisungen </strong>wie z. B. die Folgende <strong>ausgeführt</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 alter As Integer = 30</pre>



<p>Dies <strong>funktionierte </strong>natürlich auch <strong>im Hintergrund</strong> alles so <strong>wie gewollt</strong>.</p>



<p>Der <strong>Speicher wurde </strong>in der Größe eines &#8222;Integers&#8220; <strong>reserviert und </strong>die <strong>Variable wurde </strong>für uns <strong>ansprechbar</strong>.</p>



<p><strong>Dazu konnten </strong>wir den Namen (alter in diesem Fall) verwenden und die <strong>Variable bei Bedarf ändern</strong>.</p>



<p>Das <strong>ging kinderleicht mit </strong>einer zusätzlichen Zeile, also mit <strong>einer Anweisung </strong>wie Diese hier:</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="">alter = 33</pre>



<p><strong>Dabei </strong>müssen wir <strong>natürlich </strong>auf den <strong>korrekten Datentyp </strong>achten, da es sonst Probleme gibt.</p>



<p>Wir <strong>können </strong>also <strong>keinem String plötzlich</strong> eine <strong>Zahl zuweisen</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 name = "RobbelRoot"
' geht nicht!!
name = 33</pre>



<h2 class="wp-block-heading" id="wie-du-siehst-siehst-du-nichts-erste-ausgaben">Wie Du siehst, siehst Du nichts – erste Ausgaben</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Erste-Ausgaben-in-der-Konsole.jpg"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Erste-Ausgaben-in-der-Konsole.jpg" alt="VB NET Tutorial 2 - Erste Ausgaben in der Konsole" class="wp-image-8256" title="VB NET Tutorial 2 - Erste Ausgaben in der Konsole"/></a><figcaption>VB NET Tutorial 2 &#8211; Erste Ausgaben in der Konsole</figcaption></figure>



<p><strong>Bisher </strong>war es leider <strong>nicht möglich</strong>, die <strong>Variablen </strong>wirklich <strong>zu verfolgen</strong>.</p>



<p><strong>Wie in </strong>der <strong>Programmierung normal</strong>, <strong>laufen </strong>die <strong>Codezeilen </strong>von <strong>oben nach unten </strong>ab.</p>



<p><strong>Nach </strong>dem die <strong>Ausführung des Programms </strong>beendet ist, <strong>war es </strong>das dann <strong>einfach</strong>.</p>



<p><strong>Visuell bekommen </strong>wir dadurch &#8222;leider&#8220; <strong>kein Feedback </strong>und stehen im Dunkeln.</p>



<p><strong>Später werden </strong>wir <strong>uns </strong>natürlich noch mit dem &#8222;<strong>Anschauen</strong>&#8220; <strong>der Werte </strong>innerhalb von Visual Studio <strong>beschäftigen</strong>.</p>



<p>Dabei <strong>handelt </strong>es sich <strong>um das </strong>sogenannte &#8222;<strong>Debugging</strong>&#8222;, wo man die Werte dann auch <strong>Schritt für Schritt verfolgen</strong> kann.</p>



<h3 class="wp-block-heading" id="die-altbekannte-konsole-konsolenanwendung">Die altbekannte Konsole/Konsolenanwendung</h3>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Konsolen-Beispiel.png"><img loading="lazy" decoding="async" width="699" height="358" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Konsolen-Beispiel.png" alt="VB NET Tutorial 2 - Konsolen-Beispiel" class="wp-image-8270" title="VB NET Tutorial 2 - Konsolen-Beispiel"/></a><figcaption>VB NET Tutorial 2 &#8211; Konsolen-Beispiel</figcaption></figure>



<p>Im <strong>heutigen Tutorial werden </strong>wir diese <strong>visuelle Darstellung </strong>aber <strong>durch die </strong>altbekannte <strong>Konsole realisieren</strong>.</p>



<p><strong>Auch wenn </strong>die <strong>Konsole </strong>im ersten Schritt ein wenig <strong>altbacken erscheint</strong>, <strong>findet </strong>Sie <strong>heutzutage </strong>durchaus <strong>Verwendung</strong>.</p>



<p><strong>Besonders </strong>viele <strong>bekannte Frameworks verwenden </strong>die sogenannten <strong>CLI</strong>&#8211; (Command Line Interface) Anwendungen.</p>



<p>Dort <strong>stellen </strong>Sie eine <strong>Hilfe zur Generierung von Projektvorlagen</strong>, oder ähnlichen Dingen <strong>dar</strong>.</p>



<p>Auch <strong>viele Konfigurationen </strong>im IT-Bereich <strong>werden statt mit </strong>einer &#8222;richtigen&#8220; <strong>GUI</strong>, mit einer Konsolenanwendung durchgeführt.</p>



<p>Sie <strong>sind </strong>also – <strong>auch heute noch </strong>– alles Andere als wegzudenken.</p>



<h3 class="wp-block-heading" id="grafische-oberflachen-noch-nicht">Grafische Oberflächen – noch nicht!</h3>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Noch-keine-grafische-Oberflaeche.jpg"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Noch-keine-grafische-Oberflaeche.jpg" alt="VB NET Tutorial 2 - Noch keine grafische Oberfläche" class="wp-image-8272" title="VB NET Tutorial 2 - Noch keine grafische Oberfläche"/></a><figcaption>VB NET Tutorial 2 &#8211; Noch keine grafische Oberfläche</figcaption></figure>



<p>Ich <strong>habe mich </strong>daher <strong>auch hier </strong>dazu <strong>entschieden</strong>, eine typische <strong>grafische Oberfläche</strong>, <strong>nach hinten </strong>zu schieben.</p>



<p><strong>Auch wenn </strong>ich die sogenannte <strong>GUI</strong> (graphical user interface) <strong>durchaus </strong>auch <strong>für Anfänger </strong>als <strong>spannend </strong>empfinde.</p>



<p><strong>Besonders </strong>das <strong>Zusammenklicken </strong>und das &#8222;<strong>Erfahren am Tun</strong>&#8220; ist dort hiflreich.</p>



<p>Man <strong>klickt</strong> einen <strong>Button und </strong>es <strong>passiert irgendwas</strong>, man <strong>hat Textboxen </strong>und <strong>kann </strong>etwas <strong>eintragen</strong>, etc.</p>



<p><strong>Dennoch kann </strong>es eben auch <strong>zu Verwirrung führen</strong>, da wir <strong>dort </strong>dann von Dingen wie <strong>Steuerelementen</strong>, <strong>Ereignissen</strong>, <strong>etc</strong>. sprechen.</p>



<p>Ich <strong>muss zugeben</strong>, <strong>dass mich </strong>die Vorgänge an der <strong>Konsole </strong>in meiner Zeit als Lernender <strong>genervt hat</strong>.</p>



<p>Man <strong>konnte </strong>eben <strong>nicht viel sehen </strong>und der geschriebene <strong>Code erschien </strong>irgendwie so <strong>unnahbar</strong>.</p>



<p><strong>Lasse Dich </strong>davon aber <strong>nicht abschrecken</strong>, es <strong>wird </strong>Dir <strong>nachher helfen</strong>, alles besser zu verstehen.</p>



<h2 class="wp-block-heading" id="visual-studio-offnen-ein-neues-projekt">Visual Studio öffnen – ein neues Projekt</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Neues-Visual-Studio-Projekt.jpg"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Neues-Visual-Studio-Projekt.jpg" alt="VB NET Tutorial 2 - Neues Visual Studio Projekt" class="wp-image-8275"/></a><figcaption>Neues Visual Studio Projekt anlegen</figcaption></figure>



<p><strong>Nun </strong>ist es <strong>an </strong>der <strong>Zeit </strong>einmal ein <strong>neues Projekt </strong>im Visual Studio <strong>anzulegen</strong>.</p>



<p>Im <strong>vorherigen Tutorial </strong>waren wir ja <strong>eher </strong>mehr <strong>theoretisch </strong>veranlagt, dass wollen wir <strong>nun ändern</strong>.</p>



<p><strong>Öffne </strong>also nun <strong>Visual Studio</strong> und <strong>wähle rechts </strong>den Punkt &#8222;<strong>Neues Projekt erstellen</strong>&#8222;:</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-neues-Projekt-anlegen-Startbildschirm.png"><img loading="lazy" decoding="async" width="1029" height="682" src="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-neues-Projekt-anlegen-Startbildschirm.png" alt="Visual Studio neues Projekt anlegen - Startbildschirm" class="wp-image-8277" title="Visual Studio neues Projekt anlegen - Startbildschirm"/></a><figcaption>Visual Studio neues Projekt anlegen &#8211; Startbildschirm</figcaption></figure>



<h3 class="wp-block-heading" id="projekt-typ-wahlen">Projekt-Typ wählen</h3>



<p><strong>Nachdem </strong>Du diesen <strong>Menüpunkt ausgewählt </strong>hast, kommst Du in den <strong>nächsten Bildschirm</strong>.</p>



<p><strong>Dort </strong>kannst Du dann den <strong>Projekt-Typ auswählen</strong>:</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-Nach-Projektvorlage-suchen.png"><img loading="lazy" decoding="async" width="1025" height="680" src="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-Nach-Projektvorlage-suchen.png" alt="Visual Studio Projekt anlegen - Nach Projektvorlage suchen" class="wp-image-8280" title="Visual Studio Projekt anlegen - Nach Projektvorlage suchen"/></a><figcaption>Visual Studio Projekt anlegen &#8211; Nach Projektvorlage suchen</figcaption></figure>



<p><strong>Wähle </strong>dort den <strong>Projekt-Typ</strong> &#8222;<strong>Konsolenanwendung </strong>(Visual Basic)&#8220;.</p>



<p><strong>Falls </strong>Du diesen Projekt-Typ links <strong>nicht finden </strong>kannst, <strong>verwende </strong>dafür die <strong>Suche </strong>oben rechts.</p>



<h3 class="wp-block-heading" id="namen-fur-projekt-festlegen">Namen für Projekt festlegen</h3>



<p><strong>Sobald </strong>Du den <strong>Projekttyp ausgewählt </strong>hast <strong>und weiter </strong>gegangen bist, kannst Du einen <strong>Namen festlegen</strong>.</p>



<p><strong>Später gehen </strong>wir noch <strong>auf </strong>Punkte wie &#8222;Name der <strong>Projektmappe</strong>&#8220; ein, allerdings <strong>reicht </strong>der <strong>Projektname</strong> aktuell <strong>aus</strong>.</p>



<figure class="wp-block-image size-full is-resized"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-Projektname-festlegen.png"><img loading="lazy" decoding="async" src="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-Projektname-festlegen.png" alt="Visual Studio Projekt anlegen - Projektname festlegen" class="wp-image-8283" width="664" height="394" title="Visual Studio Projekt anlegen - Projektname festlegen"/></a><figcaption>Visual Studio Projekt anlegen &#8211; Projektname festlegen</figcaption></figure>



<p><strong>Beachte </strong>für den Anfang <strong>sonst nur </strong>den Pfad namens &#8222;<strong>Ort</strong>&#8222;, <strong>damit </strong>Du Deine <strong>Projekte </strong>auch <strong>wiederfindest</strong>!</p>



<p><strong>Wähle dann einen </strong>für Dich und für Dein Projekt <strong>sinnvollen Namen </strong>und fahre fort.</p>



<h3 class="wp-block-heading" id="zielframework-wahlen">Zielframework wählen</h3>



<p>Im <strong>nächsten</strong> <strong>Schritt wählen </strong>wir mit unserem aktuellen Stand auch <strong>einfach nur </strong>das <strong>standardmäßig </strong>ausgewählte <strong>Zielframework</strong>.</p>



<p>Mach es Dir also <strong>nicht schwer </strong>und <strong>nutze</strong> das <strong>schon ausgewählte Framework </strong>(in meinem Fall .NET Core 3.1).</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-Zielframework-auswaehlen.png"><img loading="lazy" decoding="async" width="623" height="230" src="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-Zielframework-auswaehlen.png" alt="Visual Studio Projekt anlegen - Zielframework auswählen" class="wp-image-8286" title="Visual Studio Projekt anlegen - Zielframework auswählen"/></a><figcaption>Visual Studio Projekt anlegen &#8211; Zielframework auswählen</figcaption></figure>



<h3 class="wp-block-heading" id="ein-leeres-read-to-go-projekt">Ein leeres &#8222;Read to go&#8220;-Projekt</h3>



<p><strong>Danach </strong>befinden wir uns <strong>im </strong>Bildschirm des <strong>neu angelegten</strong>, leeren <strong>Projekts</strong>.</p>



<p>Ich <strong>habe Dir </strong>im Bild <strong>markiert</strong>, <strong>worauf </strong>Du in den nächsten Zeilen Deine <strong>Aufmerksamkeit lenken </strong>solltest.</p>



<p><strong>Alles Andere würde </strong>Dich vermutlich nur <strong>ablenken und </strong>erstmal nur <strong>unnötig </strong>verwirren, oder <strong>überfordern</strong>.</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-In-einem-neuen-Konsolenanwendungs-Projekt.png"><img loading="lazy" decoding="async" width="1280" height="850" src="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-anlegen-In-einem-neuen-Konsolenanwendungs-Projekt.png" alt="Visual Studio Projekt anlegen - In einem neuen Konsolenanwendungs-Projekt" class="wp-image-8288" title="Visual Studio Projekt anlegen - In einem neuen Konsolenanwendungs-Projekt"/></a></figure>



<p>Visual Studio Projekt anlegen &#8211; In einem neuen Konsolenanwendungs-Projekt</p>



<p><strong>Falls </strong>Du <strong>allerdings doch schon </strong>ein paar <strong>Zusatzinformationen </strong>haben möchtest, okeydokey!</p>



<h3 class="wp-block-heading" id="projektmappen-explorer">Projektmappen-Explorer</h3>



<p><strong>Rechts oben </strong>siehst Du den <strong>Projektmappen-Explorer</strong>, dort können wir in einer &#8222;Mappe&#8220;, unsere <strong>Projekte </strong>organisieren.</p>



<p><strong>Wie das </strong>schon <strong>suggeriert</strong>, <strong>kann </strong>ein &#8222;Projekt&#8220;, bzw. eine <strong>Projektmappe </strong>also <strong>verschiedene Projekte</strong> beinhalten.</p>



<p>Dabei <strong>muss </strong>es sich also <strong>nicht immer nur </strong>um 1 <strong>Projekt </strong>wie die Konsolenanwendung handeln.</p>



<h3 class="wp-block-heading" id="git-anderungen">Git-Änderungen</h3>



<p>Wenn wir <strong>in der Nähe des Explorers</strong> auf das <strong>nächste Tab </strong>gehen, können wir zum Beispiel die <strong>Git-Änderungen</strong> schauen.</p>



<p><strong>Das </strong>ist (für den jetzigen Stand) einfach eine <strong>Möglichkeit</strong>, die <strong>Änderungen </strong>unseres <strong>Quellcodes </strong>sinnvoll zu <strong>verwalten</strong>.</p>



<h3 class="wp-block-heading" id="klassenansicht">Klassenansicht</h3>



<p>Als <strong>nächstes Tab</strong>, <strong>kommt </strong>die <strong>Klassenansicht</strong>, wo wir einfach praktisch eine <strong>andere Ansicht </strong>über die <strong>Klassen-Struktur </strong>bekommen.</p>



<p><strong>Auch das </strong>wird <strong>später </strong>sehr wahrscheinlich <strong>mehr einleuchten </strong>als jetzt!</p>



<h3 class="wp-block-heading" id="eigenschaftsfenster">Eigenschaftsfenster</h3>



<p><strong>Darunter </strong>befindet sich das <strong>Eigenschafts-Fenster</strong>, Welches uns <strong>je nach </strong>vorher ausgewähltem <strong>Element </strong>gewisse <strong>Eigenschaften anzeigt</strong>.</p>



<p><strong>Wähle ich </strong>zum Beispiel das <strong>Projekt </strong>im Explorer <strong>aus </strong>(in unserem Fall VBTutorial 2b), <strong>kann ich </strong>hier <strong>weitere Eigenschaften </strong>dazu <strong>sehen</strong>.</p>



<p>Über die <strong>anderen Bereiche</strong>, sprechen wir dann wirklich <strong>später</strong>!</p>



<h2 class="wp-block-heading" id="das-programm-ausfuhren-vb-net-tutorial-2">Das Programm ausführen – VB NET Tutorial 2</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Programm-ausfuehren.png"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Programm-ausfuehren.png" alt="VB NET Tutorial 2 - Programm ausführen" class="wp-image-8305" title="VB NET Tutorial 2 - Programm ausführen"/></a><figcaption>VB NET Tutorial 2 &#8211; Programm ausführen</figcaption></figure>



<p><strong>Bevor </strong>wir nun <strong>mit </strong>dem <strong>Coden fortfahren</strong>, kannst Du Dir ja schonmal <strong>anschauen</strong>, <strong>wie </strong>man das <strong>Programm ausführt</strong>.</p>



<p>Damit nun ein wenig Action ins Spiel kommt, <strong>klicke</strong> <strong>mit </strong>Deiner <strong>Maus </strong>einfach mal <strong>oben </strong>in der Mitte <strong>auf </strong>den &#8222;<strong>Play</strong>&#8222;-Knopf.</p>



<p><strong>Alternativ </strong>kannst Du auch den <strong>Hotkey </strong>&#8222;F5&#8220; <strong>drücken</strong>, Welchen Du <strong>vermutlich </strong>noch <strong>sehr oft </strong>benötigen wirst.</p>



<p><strong>Präge Dir </strong>den <strong>Hotkey </strong>deswegen am besten auch so schnell es geht <strong>ein</strong>!</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-bzw-Programm-starten.png"><img loading="lazy" decoding="async" width="649" height="268" src="https://robbelroot.de/wp-content/uploads/2022/02/Visual-Studio-Projekt-bzw-Programm-starten.png" alt="Visual Studio Projekt bzw Programm starten" class="wp-image-8295" title="Visual Studio Projekt bzw Programm starten"/></a><figcaption>Visual Studio Projekt bzw Programm starten</figcaption></figure>



<p><strong>Damit </strong>wird das Programm im &#8222;<strong>Debug</strong>&#8222;-Modus <strong>gestartet und </strong>– ups, <strong>verschwindet </strong>gleich wieder..</p>



<p><strong>Wenn </strong>Deine <strong>Augen schnell </strong>sind, <strong>siehst </strong>Du vermutlich kurz ein <strong>schwarzes Fenster </strong>aufblinken.</p>



<p>Das ist, bzw. <strong>war </strong>dann die <strong>Konsole</strong>, Welche den <strong>Befehl tatsächlich ausgeführt </strong>hatte, eine Zeile auf Ihr auszugeben.</p>



<p><strong>Lass mich </strong>Dir kurz ein wenig den <strong>Ablauf erklären</strong>..</p>



<p><strong>Wenn </strong>ein <strong>Programm gestartet </strong>wird, <strong>wird nach </strong>einem <strong>Einstiegspunkt gesucht</strong>, also wo das Ganze Programm &#8222;los geht&#8220;.</p>



<p>In <strong>unserem Fall </strong>hier ist das die <strong><a href="https://docs.microsoft.com/de-de/dotnet/csharp/methods" target="_blank" rel="noreferrer noopener">&#8222;Main&#8220;-Methode</a></strong>, Welche sich <strong>im </strong>&#8222;<strong>Program</strong>&#8222;-Modul befindet und <strong>nur eine Zeile </strong>enthält.</p>



<p><strong>Dabei </strong>handelt es sich <strong>um </strong>eine <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.console.writeline?view=net-6.0" target="_blank" rel="noreferrer noopener">&#8222;WriteLine&#8220;-Anweisung</a></strong>, <strong>Welche </strong>den gewählten <strong>Text </strong>&#8222;Hello World&#8220; auf der Konsole <strong>ausgibt</strong>.</p>



<p><strong>Nachdem </strong>die <strong>Konsole mit </strong>der <strong>Ausgabe fertig </strong>ist, gibt es <strong>keine weiteren Anweisungen </strong>mehr im Programm.</p>



<p><strong>Somit </strong>wurden <strong>alle</strong> <strong>Arbeiten erledigt und </strong>das <strong>Programm</strong>, bzw. die Konsole wird wieder <strong>geschlossen</strong>.</p>



<p><strong>Gleich schauen </strong>wir uns <strong>an</strong>, <strong>wie </strong>man dieses Verhalten <strong>verhindern </strong>kann.</p>



<h2 class="wp-block-heading" id="die-erste-ausgabe-auf-der-konsole-vb-net-tutorial-2">Die erste Ausgabe auf der Konsole – VB NET Tutorial 2</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Erste-Ausgabe.png"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-2-Erste-Ausgabe.png" alt="VB NET Tutorial 2 - Erste Ausgabe" class="wp-image-8319" title="VB NET Tutorial 2 - Erste Ausgabe"/></a><figcaption>VB NET Tutorial 2 &#8211; Erste Ausgabe</figcaption></figure>



<p><strong>Sorgen </strong>wir <strong>nun </strong>im nächsten Schritt einmal <strong>darum</strong>, <strong>dass </strong>das <strong>Programm </strong>sich <strong>nicht </strong>immer sofort <strong>beendet</strong>.</p>



<p><strong>Damit </strong>haben wir dann <strong>endlich </strong>die <strong>Chance</strong>, die <strong>Ausgabe </strong>aktiv <strong>zu verfolgen</strong>, ohne &#8222;The Flash&#8220; sein zu müssen.</p>



<p>Im <strong>Endeffekt </strong>ist das <strong>auch </strong>gar <strong>nicht schwer</strong>, wir <strong>müssen </strong>der <strong>Konsole </strong>nur irgendwie &#8222;Hey, <strong>warte </strong>mal&#8220; <strong>sagen</strong>.</p>



<p><strong>Dafür </strong>haben wir für den Anfang <strong>2 einfache</strong> und sinnvolle <strong>Möglichkeiten</strong>:</p>



<ul class="wp-block-list"><li>Die <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.console.readkey?view=net-6.0" target="_blank" rel="noreferrer noopener">&#8222;Console.ReadKey&#8220;-Methode</a></strong></li><li>oder die seitens UI bekanntere <strong><a href="https://docs.microsoft.com/de-de/dotnet/api/system.console.readline?view=net-6.0" target="_blank" rel="noreferrer noopener">&#8222;Console.ReadLine&#8220;-Methode</a></strong></li></ul>



<p><strong>Die </strong>&#8222;<strong>ReadKey</strong>&#8222;-Methode liest – wie der Name vermuten lässt – <strong>einen </strong>bestimmten &#8222;<strong>Key</strong>&#8222;.</p>



<p><strong>Dabei </strong>handelt es sich <strong>um </strong>einen <strong>Tastendruck</strong> = <strong>Tippen </strong>von z. B. &#8222;<strong>b</strong>&#8222;.</p>



<p>Die <strong>Konsole pausiert </strong>nach Start des Befehls <strong>solange</strong>, <strong>bis </strong>es einen gewissen <strong>Input </strong>von uns <strong>bekommt</strong>.</p>



<p>Bei <strong>Variante 1</strong> ist es wie gesagt ein <strong>einziger </strong>&#8222;<strong>Key</strong>&#8220; und <strong>bei </strong>der <strong>nächsten </strong>Variante bis Sie <strong>ein </strong>&#8222;<strong>Enter</strong>&#8220; bekommt.</p>



<h3 class="wp-block-heading" id="code-anpassen-ausgabe">Code anpassen – Ausgabe</h3>



<p><strong>Wenn </strong>Du <strong>nun also </strong>bereits wie oben beschrieben ein <strong>Projekt angelegt </strong>hast, geht&#8217;s nun weiter.</p>



<p>Wir <strong>werden nun eine der </strong>genannten <strong>Methoden verwenden</strong>, um das Beenden der Konsole zu verhindern.</p>



<p><strong>Passe </strong>den <strong>Code </strong>also nun so <strong>an</strong>, dass der &#8222;Console.ReadLine&#8220;-Befehl seinen Platz findet:</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="">Module Program

    Sub Main(args As String())
        Console.WriteLine("Dies ist unsere Ausgabe!")
        Console.ReadLine()
    End Sub

End Module</pre>



<p><strong>Dadurch </strong>dürftest Du nun die <strong>Ausgabe </strong>des Textes &#8222;Dies ist unsere Ausgabe!&#8220; <strong>sehen</strong>:</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Ausgabe-auf-der-Konsole-und-ReadLine.png"><img loading="lazy" decoding="async" width="488" height="211" src="https://robbelroot.de/wp-content/uploads/2022/02/Ausgabe-auf-der-Konsole-und-ReadLine.png" alt="Ausgabe auf der Konsole und ReadLine" class="wp-image-8321" title="Ausgabe auf der Konsole und ReadLine"/></a><figcaption>Ausgabe auf der Konsole und ReadLine</figcaption></figure>



<h3 class="wp-block-heading" id="programm-schliessen">Programm schließen</h3>



<p>Diese <strong>Ausgabe bleibt </strong>nun solange stehen, <strong>bis </strong>Du das <strong>Programm</strong>:</p>



<ul class="wp-block-list"><li><strong>entweder durch </strong>das &#8222;<strong>X</strong>&#8220; oben rechts</li><li><strong>durch </strong>drücken einer <strong>Eingabe </strong>von z. B. &#8222;abc&#8220; und &#8222;<strong>Enter</strong>&#8220; beendest</li><li><strong>alternativ </strong>kannst Du auch den <strong>Stop-Knopf</strong> <strong>im </strong>Visual <strong>Studio </strong>benutzen</li></ul>



<p><strong>Nun </strong>bist Du natürlich <strong>herzlich eingeladen</strong>, einmal die <strong>Definitionen </strong>von Variablen aus Tutorial 1 <strong>zu wiederholen</strong>.</p>



<p>Diese, oder <strong>neue Definitionen</strong>, bzw. deren dahinterstehende Werte werden wir <strong>gleich einmal ausgeben</strong>.</p>



<p><strong>Am einfachsten </strong>ist es am Anfang <strong>mit Strings</strong>, warum wirst Du gleich noch erfahren.</p>



<h3 class="wp-block-heading" id="strings-definieren-einladung-wiederholung">Strings definieren – Einladung &amp; Wiederholung</h3>



<p><strong>Definiere </strong>daher einfach mal <strong>2-3 Strings</strong> und <strong>dann </strong>sehen wir <strong>weiter</strong>.</p>



<p>Ich <strong>habe </strong>hier <strong>bewusst </strong>nochmal die <strong>3 Möglichkeiten</strong> zur Definition verwendet.</p>



<p><strong>Zur Erinnerung</strong>, die <strong>Möglichkeiten </strong>zur Definition <strong>waren</strong>:</p>



<ul class="wp-block-list"><li><strong>Deklaration </strong>(mit anschließender Zuweisung bei Bedarf)</li><li><strong>Initialisierung</strong></li><li><strong>Initialisierung </strong>mit <strong>Typinferenz</strong></li></ul>



<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="">' Variante 1
Dim vorname As String
vorname = "Robert"

' Variante 2
Dim youtubeKanal As String = "RobbelRoot"

' Variante 3
Dim befehl = "Download"</pre>



<h3 class="wp-block-heading" id="die-definierten-variablen-ausgeben">Die definierten Variablen ausgeben</h3>



<p><strong>Nun können </strong>wir auch einmal die definierten <strong>Variablen</strong>, statt der geschriebenen Texte <strong>ausgeben lassen</strong>.</p>



<p>Dafür können wir der &#8222;Console.WriteLine&#8220;-Methode einfach unsere Variablen übergeben:</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 befehl = "Download"
Console.WriteLine(befehl)
Console.ReadLine()</pre>



<p><strong>Nun dürfest </strong>Du auch die &#8222;befehl&#8220;-Variable <strong>ausgegeben bekommen</strong>.</p>



<p><strong>Schön wäre </strong>es auch, <strong>wenn man </strong>nun so <strong>etwas wie </strong>&#8222;Hey, in der Variable steht: &lt;InhaltDerVariable&gt;&#8220; <strong>ausgeben könnte</strong>.</p>



<p>Das <strong>geht </strong>zum Glück auch <strong>ganz einfach mit </strong>dem <strong>verketten von Strings</strong>.</p>



<p>Dabei <strong>spielt </strong>es <strong>keine Rolle</strong>, <strong>ob </strong>wir diesen <strong>String selbst schreiben</strong>, also im Sinne von &#8222;Das ist ein String&#8220; (mit Anführungszeichen).</p>



<p><strong>Oder ob </strong>wir den String wie oben <strong>vorher in </strong>einer <strong>Variable gespeichert </strong>haben.</p>



<h3 class="wp-block-heading" id="strings-miteinander-verketten">Strings miteinander verketten</h3>



<p><strong>Durch </strong>die <strong>Verkettung </strong>von Strings <strong>können </strong>wir <strong>beliebig viele Strings </strong>aneinander <strong>reihen</strong>.</p>



<p>Das <strong>funktioniert </strong>in Kombination <strong>mit </strong>dem <strong>Verkettungsoperator </strong>– <strong>in Visual Basic</strong> ist das das &#8222;<strong>&amp;</strong>&#8222;-Zeichen.</p>



<p>In <strong>anderen Sprachen </strong>ist es <strong>häufig </strong>das &#8222;<strong>+</strong>&#8222;-Zeichen, <strong>nur </strong>mal so <strong>als Anmerkung</strong>.</p>



<p><strong>Hier </strong>hast Du ein <strong>Beispiel </strong>für die <strong>Ausgabe und </strong>die <strong>Verkettung </strong>von 2 Strings:</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="">Dim befehl = "Download"
Console.WriteLine("Hey, in der Variable steht: " &amp; befehl)</pre>



<p><strong>Dadurch </strong>wird nun <strong>diese Ausgabe </strong>auf der Konsole zustande kommen:</p>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/Zwei-Strings-verkettet-auf-der-Konsole-ausgeben.png"><img loading="lazy" decoding="async" width="463" height="222" src="https://robbelroot.de/wp-content/uploads/2022/02/Zwei-Strings-verkettet-auf-der-Konsole-ausgeben.png" alt="Zwei Strings verkettet auf der Konsole ausgeben" class="wp-image-8342" title="Zwei Strings verkettet auf der Konsole ausgeben"/></a><figcaption>Zwei Strings verkettet auf der Konsole ausgeben</figcaption></figure>



<p><strong>Beachte </strong>hierbei <strong>wie gesagt</strong>, <strong>dass </strong>es sich <strong>hier </strong>einfach <strong>nur </strong>um <strong>2 Strings</strong> handelt, <strong>Welche </strong>wir <strong>verkettet </strong>haben.</p>



<p><strong>Links </strong>ist ein <strong>String</strong>, <strong>rechts </strong>ist ein <strong>String </strong>– ganz <strong>easy</strong>, Punkt!</p>



<p>Du <strong>könntest </strong>stattdessen <strong>auch 5 Strings verketten</strong>, kein Thema, <strong>wobei </strong>ich hier <strong>sogar </strong>die Variable <strong>mehrfach genutzt </strong>habe:</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 befehl = "Download"
Console.WriteLine("Das ist ein " &amp; befehl &amp; ", plus ein " &amp; befehl &amp; " mit Strings!")</pre>



<p>Diese <strong>Verkettung funktioniert auch </strong>nicht nur <strong>bei </strong>der Ausgabe selbst, wir können die <strong>Variable </strong>auch so neu <strong>zuweisen</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 befehl = "Download"
befehl = "Dies ist ein " &amp; befehl</pre>



<p><strong>Falls </strong>wir die <strong>String-Variable nur</strong> &#8222;<strong>erweitern</strong>&#8220; möchten, also einen <strong>String anfügen </strong>wollen, <strong>geht </strong>das auch <strong>kürzer</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 befehl = "Download"
befehl &amp;= " erweitert um das hier!"</pre>



<p><strong>Das </strong>&#8222;und-gleich&#8220; (&amp;=) <strong>könnte man </strong>hier <strong>als </strong>&#8222;<strong>erweitere um</strong>&#8220; <strong>übersetzen</strong>, cool oder!?</p>



<p><strong>Letztendlich </strong>sind also diese <strong>beiden Anweisungen </strong>hier praktisch das <strong>Gleiche</strong>:</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="">befehl = befehl &amp; " erweitert um das hier!"
befehl &amp;= " erweitert um das hier!"</pre>



<p>So, ich <strong>denke das war es </strong>an dieser Stelle <strong>für </strong>das <strong>heutige </strong>Tutorial, <strong>sonst </strong>dürfte es <strong>zu viel</strong> werden.</p>



<h2 class="wp-block-heading" id="fazit">Fazit</h2>



<figure class="wp-block-image size-full"><a href="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-1-Fazit.jpg"><img loading="lazy" decoding="async" width="1200" height="628" src="https://robbelroot.de/wp-content/uploads/2022/02/VB-NET-Tutorial-1-Fazit.jpg" alt="VB NET Tutorial 2 - Fazit" class="wp-image-8236"/></a></figure>



<p>Im <strong>heutigen Tutorial </strong>haben wir uns mit der <strong>ersten Ausgabe von Daten </strong>beschäftigt.</p>



<p>Diese <strong>Daten waren </strong>in erster Linie <strong>Strings</strong>, <strong>Welche </strong>wir <strong>als Literale</strong>, <strong>oder </strong>als <strong>Variablen </strong>geschrieben haben.</p>



<p>Zur <strong>Erinnerung</strong>: <strong>Literale sind </strong>einfach <strong>gewisse Schreibweisen</strong>, von Denen man <strong>ableiten </strong>kann, <strong>was</strong> der dahinter stehende <strong>Wert ist</strong>.</p>



<p>Ein <strong>Beispiel wären </strong>die <strong>Anführungszeichen </strong>im Quellcode, <strong>woran </strong>man <strong>erkennt</strong>, <strong>dass </strong>es sich um <strong>einen String </strong>handelt.</p>



<p><strong>Anschließend </strong>habe wir <strong>verschiedene Verkettungsoperationen</strong> durchgeführt, um die <strong>Ausgabe </strong>ein wenig <strong>dynamischer </strong>zu gestalten.</p>



<p><strong>Damit </strong>das Ganze überhaupt <strong>möglich </strong>war, <strong>haben </strong>wir natürlich auch noch ein <strong>neues Visual Studio</strong> <strong>Projekt aufgesetzt</strong>.</p>



<h2 class="wp-block-heading" id="downloads">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="https://bit.ly/vbnet-tutorial-2-download" target="_blank" rel="noreferrer noopener">VBTutorial2_DE.zip</a></div>
</div>



<h2 class="wp-block-heading" id="weiterfuhrende-links">Weiterführende Links</h2>



<ul class="wp-block-list"><li><a href="https://robbelroot.de/blog/vb-net-tutorial-3-eingaben-entgegennehmen-verarbeiten/" target="_blank" rel="noreferrer noopener"><strong>weiter zu Tutorial 3 &#8211; Eingaben verarbeiten</strong></a></li><li><strong><a href="https://robbelroot.de/blog/vbnet-timer-beispiel-code-im-intervall-ausfuehren/" target="_blank" rel="noreferrer noopener">VB NET Timer Beispiel</a></strong></li><li><strong><a href="https://robbelroot.de/blog/tutorials-vbnet-1-variablen/" target="_blank" rel="noreferrer noopener">zurück zu Tutorial 1 &#8211; Variablen</a></strong></li></ul>
<p>Der Beitrag <a href="https://robbelroot.de/blog/vb-net-tutorial-2-erste-ausgaben-auf-der-konsole/">VB NET Tutorial 2 &#8211; Erste Ausgaben auf der Konsole</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/vb-net-tutorial-2-erste-ausgaben-auf-der-konsole/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Mit der Konsole (CMD) arbeiten</title>
		<link>https://robbelroot.de/blog/mit-der-konsole-cmd-arbeiten/</link>
					<comments>https://robbelroot.de/blog/mit-der-konsole-cmd-arbeiten/#respond</comments>
		
		<dc:creator><![CDATA[Robert Skibbe]]></dc:creator>
		<pubDate>Sat, 13 Feb 2016 17:49:33 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Visual Basic .NET]]></category>
		<category><![CDATA[Visual Basic .NET Problemlösungen]]></category>
		<category><![CDATA[arbeiten]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[eingabeaufforderung]]></category>
		<category><![CDATA[konsole]]></category>
		<category><![CDATA[mit]]></category>
		<category><![CDATA[prompt]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vbnet]]></category>
		<category><![CDATA[visual basic]]></category>
		<category><![CDATA[with]]></category>
		<category><![CDATA[working]]></category>
		<guid isPermaLink="false">http://robbelroot.de/?p=976</guid>

					<description><![CDATA[<p>Auf YouTube ansehen Code Download</p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/mit-der-konsole-cmd-arbeiten/">Mit der Konsole (CMD) arbeiten</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" async=""></script><!-- robbelroot.de pre content --><ins class="adsbygoogle" style="display: inline-block; width: 468px; height: 60px;" data-ad-client="ca-pub-3635281460831831" data-ad-slot="4378945418"></ins><script>// <![CDATA[
(adsbygoogle = window.adsbygoogle || []).push({});
// ]]&gt;</script></p>
<p style="margin-bottom: 0;"><a class="fasc-button fasc-size-medium fasc-type-glossy fasc-rounded-medium fasc-ico-before dashicons-format-video" style="background-color: #ff0000; color: #ffffff;" href="https://www.youtube.com/watch?v=ELjZgbknFck" target="_blank" data-fasc-style="background-color:#ff0000;color:#ffffff;">Auf YouTube ansehen</a> <a class="fasc-button fasc-size-medium fasc-type-glossy fasc-rounded-medium fasc-ico-before dashicons-download" style="background-color: #339e48; color: #ffffff;" href="https://adf.ly/1Qde1p" target="_blank" data-fasc-style="background-color:#339e48;color:#ffffff;">Code Download</a></p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/ELjZgbknFck" frameborder="0" allowfullscreen></iframe></p>
<p><script src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js" async=""></script><!-- robbelroot.de pre content --><ins class="adsbygoogle" style="display: inline-block; width: 468px; height: 60px;" data-ad-client="ca-pub-3635281460831831" data-ad-slot="4378945418"></ins><script>// <![CDATA[
(adsbygoogle = window.adsbygoogle || []).push({});
// ]]&gt;</script></p>
<p>Der Beitrag <a href="https://robbelroot.de/blog/mit-der-konsole-cmd-arbeiten/">Mit der Konsole (CMD) arbeiten</a> erschien zuerst auf <a href="https://robbelroot.de">Robert Skibbe</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://robbelroot.de/blog/mit-der-konsole-cmd-arbeiten/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
