Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen der Sprachsyntax
3 Klassendesign
4 Weitere Datentypen
5 Multithreading
6 Collections und LINQ
7 Eingabe und Ausgabe
8 Anwendungen: Struktur und Installation
9 Code erstellen und debuggen
10 Einige Basisklassen
11 Windows-Anwendungen erstellen
12 Die wichtigsten Steuerelemente
13 Tastatur- und Mausereignisse
14 MDI-Anwendungen
15 Grafiken mit GDI+
16 Drucken
17 Entwickeln von Steuerelementen
18 Programmiertechniken
19 WPF – Grundlagen
20 Layoutcontainer
21 WPF-Steuerelemente
22 Konzepte von WPF
23 Datenbankverbindung mit ADO.NET
24 Datenbankabfragen mit ADO.NET
25 DataAdapter
26 Offline mit DataSet
27 Datenbanken aktualisieren
28 Stark typisierte DataSets
A Anhang: Einige Übersichten
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual Basic 2008 von Andreas Kuehnel, Stephan Leibbrandt
Das umfassende Handbuch
Buch: Visual Basic 2008

Visual Basic 2008
3., aktualisierte und erweiterte Auflage, geb., mit DVD
1.323 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1171-0
Pfeil 2 Grundlagen der Sprachsyntax
Pfeil 2.1 Konsolenanwendungen
Pfeil 2.1.1 Allgemeine Anmerkungen
Pfeil 2.1.2 Der Projekttyp »Konsolenanwendung«
Pfeil 2.1.3 Die Vorlage »Konsolenanwendung«
Pfeil 2.2 Kommentare und Anweisungen
Pfeil 2.2.1 Einfache Kommentare
Pfeil 2.2.2 Hilfekommentare
Pfeil 2.2.3 Funktionsaufrufe (Methoden)
Pfeil 2.2.4 Anweisungen
Pfeil 2.3 Programmausführung
Pfeil 2.3.1 Ausgabe mit WriteLine
Pfeil 2.3.2 Start und Test
Pfeil 2.3.3 Unterbrechung mit ReadLine
Pfeil 2.4 Projektorganisation
Pfeil 2.4.1 Namensräume und Imports
Pfeil 2.4.2 Lösungen als Hyperprojekt
Pfeil 2.4.3 Existierende Projekte hinzufügen
Pfeil 2.4.4 Neues Projekt hinzufügen
Pfeil 2.4.5 Quellcodegliederung
Pfeil 2.4.6 Refactoring
Pfeil 2.5 Variablen und Datentypen
Pfeil 2.5.1 Explizite und implizite Variablen (Option Explicit)
Pfeil 2.5.2 Typisierte und untypisierte Variablen (Option Strict)
Pfeil 2.5.3 Variablendeklaration
Pfeil 2.5.4 Einfache Datentypen
Pfeil 2.5.5 Sichtbarkeit und Lebensdauer
Pfeil 2.5.6 Initialisierung von Variablen
Pfeil 2.5.7 Datentypkonvertierung
Pfeil 2.5.8 Funktionen
Pfeil 2.5.9 Schlüsselwörter
Pfeil 2.5.10 Zusammenfassung
Pfeil 2.6 Ein- und Ausgabemethoden der Klasse »Console«
Pfeil 2.6.1 Ausgabe mit Write und WriteLine
Pfeil 2.6.2 Einlesen mit Read und ReadLine
Pfeil 2.7 Operatoren
Pfeil 2.7.1 Arithmetische Operatoren
Pfeil 2.7.2 Relationale Operatoren
Pfeil 2.7.3 Logische Operatoren
Pfeil 2.7.4 Bitweise Operatoren
Pfeil 2.7.5 Verkettungsoperator
Pfeil 2.7.6 Zuweisungsoperatoren
Pfeil 2.7.7 Operatorprioritäten
Pfeil 2.7.8 Zusammenfassung
Pfeil 2.8 Fehlerbehandlung
Pfeil 2.8.1 Ohne Fehlerbehandlung
Pfeil 2.8.2 Funktionsweise von Try/Catch/Finally
Pfeil 2.8.3 Try/Catch
Pfeil 2.8.4 Try/Catch/Finally
Pfeil 2.8.5 Try/Finally
Pfeil 2.8.6 Rethrow
Pfeil 2.8.7 Spezifische Ausnahmen und mehrere Catch-Zweige
Pfeil 2.8.8 Unstrukturierte Fehlerbehandlung
Pfeil 2.9 Kontrollstrukturen
Pfeil 2.9.1 Die If-Anweisung
Pfeil 2.9.2 Select-Case-Anweisung
Pfeil 2.9.3 Gültigkeitsbereich einer Variablendeklaration
Pfeil 2.9.4 Entscheidungsfunktionen
Pfeil 2.9.5 If-Operator
Pfeil 2.9.6 Bedingte Kompilierung
Pfeil 2.9.7 Zusammenfassung
Pfeil 2.10 Programmschleifen
Pfeil 2.10.1 Do und While
Pfeil 2.10.2 For
Pfeil 2.10.3 Gültigkeitsbereich einer Variablendeklaration
Pfeil 2.10.4 Exit und Continue
Pfeil 2.10.5 GoTo
Pfeil 2.10.6 Zusammenfassung
Pfeil 2.11 Datenfelder (Arrays)
Pfeil 2.11.1 Eindimensionale Arrays
Pfeil 2.11.2 Mehrdimensionale Arrays
Pfeil 2.11.3 Initialisierung
Pfeil 2.11.4 Arrayname und Kopien
Pfeil 2.11.5 Speicherbelegung und Redimensionierung
Pfeil 2.11.6 Jagged Arrays
Pfeil 2.11.7 Feldgröße
Pfeil 2.11.8 Zusammenfassung


Rheinwerk Computing - Zum Seitenanfang

2.6 Ein- und Ausgabemethoden der Klasse »Console« Zur nächsten ÜberschriftZur vorigen Überschrift

In Konsolenanwendungen sind wir auf textuelle Ein- und Ausgaben beschränkt, die mit den Funktionen Write, WriteLine, Read und ReadLine der Klasse Console ausgeführt werden.


Hinweis
Die Dezimal- und Tausendertrennzeichen der Ein- und Ausgabe hängen von den Ländereinstellungen ab und sind in der Klasse System.Globalization.NumberFormatInfo gepeichert.



Rheinwerk Computing - Zum Seitenanfang

2.6.1 Ausgabe mit Write und WriteLine Zur nächsten ÜberschriftZur vorigen Überschrift

Der Unterschied der beiden Ausgabefunktionen ist, dass WriteLine einen Zeilenvorschub an die Ausgabe anhängt. Das folgende Codefragment erzeugt zwei identische Ausgabezeilen. Die beiden ersten Schreibbefehle erzeugen eine einzelne Zeile, weil hinter dem ersten Write kein Zeilenvorschub erzeugt wird. Die letzte Zeile simuliert das Verhalten von WriteLine mithilfe von Write. Alternativen zum Zeilenvorschub befinden sich in der Klasse ControlChars (Cr, Lf, CrLf).


' ...\Sprachsyntax\EinUndAusgabe\EinUndAusgabe.vb

Option Strict On 
Namespace Sprachsyntax 
  Module EinUndAusgabe 
    ... 
    Sub Write() 
      Console.Write("A") 
      Console.WriteLine(" und O") 
      Console.Write("A und O" & Environment.NewLine) 
      Console.ReadLine() 
    End Sub 
  End Module 
End Namespace

Die Parameter der Ausgaberoutinen lassen sich in zwei Gruppen unterteilen:

  • Kontrollstring: erstes Argument als Text mit {}-Platzhaltern für Daten
  • Daten: alle weiteren Argumente, die in die Platzhalter eingefügt werden

Die Position der Daten in der Ausgabe ist durch die Position der {}-Platzhalter fixiert. Welches Datum in welcher Formatierung ein Platzhalter repräsentiert, wird durch den Inhalt der geschweiften Klammern bestimmt, wobei die beiden letzten Parameter einzeln oder zusammen wegfallen dürfen.


{Argumentnummer , Ausgabebreite : Format}

Die Zählung für Daten beginnt bei null, also ist {0} das erste Datum und {4} das fünfte. {}-Platzhalter dürfen beliebig oft im Kontrollstring wiederholt werden. Die Breite gibt die Mindest-Gesamtbreite an, inklusive aller zusätzlichen Zeichen wie zum Beispiel Minus oder E. Die Ausgabe

  1234567890 
123456789012345 
  –3.178E+15

des folgenden Codefragments zeigt dies;


' ...\Sprachsyntax\EinUndAusgabe\EinUndAusgabe.vb

Option Strict On 
Namespace Sprachsyntax 
  Module EinUndAusgabe 
    ... 
    Sub Mindestbreite() 
      Console.WriteLine("{0,12}", 1234567890) 
      Console.WriteLine("{0,12}", 123456789012345) 
      Console.WriteLine("{0,12}", –3.178 * 10 ^ 15) 
      Console.ReadLine() 
    End Sub 
  End Module 
End Namespace

Tabelle 2.6 zeigt die erlaubten Formatangaben. Allen Formaten kann eine Zahl angehängt werden. Bei ganzzahligen Formaten gibt sie die Mindeststellenzahl an, während sie sonst die Nachkommastellen spezifiziert. Das Format R ignoriert die Zahl.


Tabelle 2.6 Standardformate für die Ausgabe

Formatangabe Beschreibung

C

lokales Währungsformat

D

dezimaler Integer (nur ganze Zahlen)

E

wissenschaftliches Format (Exponentialschreibweise)

F

Festpunktformat

G

das »kompaktere« Format der Formate E und F

N

Festpunktformat einschließlich Tausenderseparatoren

P

Prozentzahl

R

Anzeigegarantie für alle Stellen (nur Single und Double)

X

Hexadezimalnotation (nur ganze Zahlen)


Das folgende Codefragment zeigt die Formate in Aktion. Bemerkenswert ist die Ausgabe des R-Formats. Es zeigt eine andere Zahl, als wir angegeben haben. Dies liegt daran, dass die Zahl sich nicht exakt in einem Single darstellen lässt und daher die nächstliegende darstellbare Zahl genommen wird. Noch erstaunlicher ist der Vergleich der Formate R und F5. Obwohl F5 genügend Stellen haben sollte, um die Zahl exakt so auszugeben, wie sie gespeichert ist, liefert sie Nullen anstatt der im R-Format korrekt gezeigten Ziffern.


' ...\Sprachsyntax\EinUndAusgabe\EinUndAusgabe.vb

Option Strict On 
Namespace Sprachsyntax 
  Module EinUndAusgabe 
    ... 
    Sub Standard() 
      Dim z As Single = 2340.0002 
      Dim x As Integer = 2340 
      Console.WriteLine("C {0:C}", z)   'C $2,340.00 
      Console.WriteLine("D {0:D}", x)   'D 2340 
      Console.WriteLine("E {0:E}", z)   'E 2.340000E+003 
      Console.WriteLine("F {0:F}", z)   'F 2340.00 
      Console.WriteLine("N {0:N}", z)   'N 2,340.00 
      Console.WriteLine("P {0:P}", z)   'P 234,000.00% 
      Console.WriteLine("R {0:R}", z)   'R 2340.00024 
      Console.WriteLine("X {0:X}", x)   'X 924 
      Console.WriteLine("F5 {0:F5}", z) 'F5 2340.00000 
      Console.WriteLine("D5 {0:D5}", x) 'D5 02340 
      Console.ReadLine() 
    End Sub 
  End Module 
End Namespace

Neben den Standardformaten kann man auch explizit bestimmen, wie Ziffern von Zahlen dargestellt werden. Statt des Kontrollstrings wird ToString aufgerufen. Das folgende Beispiel formatiert die Zahl mit mindestens 2 Stellen vor und 3 Stellen nach dem Komma.

wert.ToString("##.###")

Tabelle 2.7 fasst die wichtigsten Formatangaben dieser Art zusammen.


Tabelle 2.7 Benutzerdefinierte Formate für die Ausgabe

Formatangabe Beschreibung

#

Nur signifikante Stellen werden ausgegeben.

0

Nichtsignifikante Stellen erhalten eine 0.

.

Position des Dezimaltrennzeichens

,

1) zwischen # bzw. 0: einfügen von Tausendertrennzeichen 2) vor Dezimaltrennzeichen: je eine Division durch 1000

E0 oder e0

wissenschaftliche Darstellung mit Zehnerpotenzen

E+0 oder e+0

dito, aber immer mit Vorzeichen im Exponenten


Am einfachsten ist dies an Beispielen nachzuvollziehen. Am Zeilenende ist jeweils als Kommentar die Ausgabe angegeben. Man sieht, dass die geforderten Stellen vor dem Komma eine Mindestangabe sind. Ist die Zahl größer, werden halt mehr Stellen als gefragt ausgegeben, wie in den beiden ersten Fällen zu sehen ist. Vergleiche von 3 und 4, 5 und 8, 6 und 9 sowie 7 und a zeigen, wie die 0 statt des # eine Ausgabe auch nichtsignifikanter Stellen erzwingt. Die vorletzte Ausgabe zeigt die Verwendung eines Tausendertrennzeichens und die letzte eine Skalierung um den Faktor eine Million (zwei Kommata vor dem Dezimaltrennzeichen).


' ...\Sprachsyntax\EinUndAusgabe\EinUndAusgabe.vb

Option Strict On 
Namespace Sprachsyntax 
  Module EinUndAusgabe 
    ... 
    Sub Custom() 
      Dim z As Double = 2340.704 
      Console.WriteLine(z.ToString("1 ##"))     '1 2341 
      Console.WriteLine(z.ToString("2 00"))     '2 2341 
      Console.WriteLine(z.ToString("3 ######")) '3 2341 
      Console.WriteLine(z.ToString("4 000000")) '4 002341 
      Console.WriteLine(z.ToString("5 #.##"))   '5 2340.7 
      Console.WriteLine(z.ToString("6 #.###"))  '6 2340.704 
      Console.WriteLine(z.ToString("7 #.####")) '7 2340.704 
      Console.WriteLine(z.ToString("8 0.00"))   '8 2340.70 
      Console.WriteLine(z.ToString("9 0.000"))  '9 2340.704 
      Console.WriteLine(z.ToString("a 0.0000")) 'a 2340.7040 
      Console.WriteLine(z.ToString("b 0,0.00")) 'b 2,340.70 
      Console.WriteLine(z.ToString("c 0,,.000"))'c 0.002 
      Console.ReadLine() 
    End Sub 
  End Module 
End Namespace

Hinweis
Wenn sichergestellt werden muss, dass alle Ziffern einer Fließkommazahl angezeigt werden, so muss das R-Format benutzt werden.



Hinweis
Doppelte geschweifte Klammern, {{ und }}, in Kombination mit Datenplatzhaltern {…} erscheinen in der Ausgabe als einfache Klammern und steuern nicht die Formatierung.



Rheinwerk Computing - Zum Seitenanfang

2.6.2 Einlesen mit Read und ReadLine topZur vorigen Überschrift

Die Methode ReadLine liest eine ganze Zeile Text mit abschließendem Taste Enter oder Taste Enter von der Tastatur und gibt den gelesenen Text zurück. Der Zeilenvorschub am Ende der Zeile ist nicht Teil des Textes. Liest man also mit

Dim zeile As String = Console.ReadLine()

den Text

"zwei Wörter" Taste Enter

so enthält zeile nur den Teil »zwei Wörter«. Demgegenüber liest Read ein einzelnes Zeichen und gibt den Code des Zeichens als ganze Zahl zurück. Das folgende Codefragment zeigt, wie ein Zeichen eingelesen und ausgegeben wird. Die Funktion ChrW konvertiert den Zeichencode in einen Buchstaben.

Dim ein As Integer = Console.Read() 
Console.WriteLine("Code {0} = {1}", ein, ChrW(ein))

Dass Read immer ein Zeichen liest, gilt für alle Zeichen, den Zeilenvorschub inbegriffen. Die folgende Funktion kann verwendet werden, um dies zu verifizieren. Das zweite ReadLine ist am Prozedurende eingefügt, da Read so lange blockiert, bis ein Zeilenvorschub eingegeben wurde. Dieser wird gegebenenfalls vom ersten ReadLine konsumiert, das zweite hält die Konsole offen.


' ...\Sprachsyntax\EinUndAusgabe\EinUndAusgabe.vb

Option Strict On 
Namespace Sprachsyntax 
  Module EinUndAusgabe 
    ... 
    Sub Read() 
      Console.Write("Bitte 1 Zeile mit Zeilenvorschub: ") 
      Dim zeile As String = Console.ReadLine() 
      Console.WriteLine("Eingegebene Zeile: {0}", zeile)
      Console.Write("Bitte 2 Zeichen oder Zeilenvorschub: ") 
      Dim ein As Integer 
      ein = Console.Read() 
      Console.WriteLine("Code {0} = {1}", ein, ChrW(ein)) 
      ein = Console.Read() 'gebraucht nach Return/Enter 
      Console.WriteLine("Code {0} = {1}", ein, ChrW(ein)) 
      Console.ReadLine() 
      Console.ReadLine() 
    End Sub 
  End Module 
End Namespace

Gibt man erst "zwei Wörter" Taste Enter und dann einen weiteren Zeilenvorschub ein, ergibt sich die Ausgabe aus Abbildung 2.38. Sie zeigt, dass unter Windows der Zeilenvorschub aus zwei Zeichen mit den Codes 13 und 10 besteht und dass jedes der beiden obigen Read-Kommandos je eines dieser Zeichen liest. Die Position des Cursors in der Abbildung zeigt, dass jeder WriteLine-Befehl für die Codes 10 und 13 jeweils einen Zeilenvorschub in der Ausgabe generiert hat.

Abbildung 2.38 Read liest immer ein Zeichen.

Das Problem bei Read ist, dass es, obwohl es nur ein Zeichen liest, so lange blockiert, bis ein Zeilenvorschub eingegeben wurde. Beim Einlesen von der Tastatur sollte man also entweder bei ReadLine bleiben oder ReadKey zum Einlesen einzelner Zeichen verwenden. Das folgende Codefragment zeigt, dass die Eingabecodierung angegeben werden sollte, um die Umlaute richtig einzulesen.


' ...\Sprachsyntax\EinUndAusgabe\EinUndAusgabe.vb

Option Strict On 
Namespace Sprachsyntax 
  Module EinUndAusgabe 
    ... 
    Sub ReadKey() 
      Console.InputEncoding = Text.Encoding.GetEncoding(1252) 
      Dim ein As Char 
      Console.WriteLine("Bitte Zeichen eingeben: ") 
      ein = Console.ReadKey().KeyChar() 
      Console.WriteLine("{1} (Code {0})", AscW(ein), ein) 
      Console.ReadLine() 
    End Sub 
  End Module 
End Namespace


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual Basic 2008
Visual Basic 2008
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern