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
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
Pfeil 6 Wichtige Klassen in .NET
Pfeil 6.1 Klasse String für Zeichenketten
Pfeil 6.1.1 Eigenschaften der Klasse String
Pfeil 6.1.2 Trimmen
Pfeil 6.1.3 Splitten
Pfeil 6.1.4 Suchen
Pfeil 6.1.5 Einfügen
Pfeil 6.1.6 Löschen
Pfeil 6.1.7 Teilzeichenkette ermitteln
Pfeil 6.1.8 Zeichen ersetzen
Pfeil 6.1.9 Ausgabe formatieren
Pfeil 6.2 Datum und Uhrzeit
Pfeil 6.2.1 Eigenschaften von DateTime
Pfeil 6.2.2 Rechnen mit Datum und Uhrzeit
Pfeil 6.2.3 DateTimePicker
Pfeil 6.3 Dateien und Verzeichnisse
Pfeil 6.3.1 Lesen aus einer Textdatei
Pfeil 6.3.2 Schreiben in eine Textdatei
Pfeil 6.3.3 Sicheres Lesen aus einer Textdatei
Pfeil 6.3.4 Sicheres Schreiben in eine Textdatei
Pfeil 6.3.5 Datei mit wahlfreiem Zugriff
Pfeil 6.3.6 Die Klassen File und Directory
Pfeil 6.3.7 Das aktuelle Verzeichnis
Pfeil 6.3.8 Eine Liste der Dateien
Pfeil 6.3.9 Eine Liste der Dateien und Verzeichnisse
Pfeil 6.3.10 Informationen über Dateien und Verzeichnisse
Pfeil 6.3.11 Bewegen in der Verzeichnishierarchie
Pfeil 6.4 Rechnen mit der Klasse Math
Pfeil 6.5 Zugriff auf MS Office
Pfeil 6.5.1 MS Word Datei erstellen
Pfeil 6.5.2 MS Excel Datei erstellen
Pfeil 6.6 Formular drucken
Pfeil 6.6.1 Druck und Seitenvorschau
Pfeil 6.6.2 Druckeinstellungen

6 Wichtige Klassen in .NETZur nächsten Überschrift

In diesem Kapitel werden Ihnen einige Klassen vorgestellt, die Sie zur Lösung von alltäglichen Problemen bei der Programmierung mit Visual Basic benötigen.

Folgende Klassen (beziehungsweise Strukturen) werden in vielen Projekten eingesetzt:

  • die Klasse String zur Bearbeitung von Zeichenketten
  • die Strukturen DateTime und TimeSpan zum Rechnen mit Datum und Uhrzeit
  • die Klassen FileStream, StreamWriter, StreamReader, File und Directory zum Arbeiten mit Dateien und Verzeichnissen
  • die Klasse Math zur Durchführung von mathematischen Berechnungen

Rheinwerk Computing - Zum Seitenanfang

6.1 Klasse String für ZeichenkettenZur nächsten ÜberschriftZur vorigen Überschrift

Zeichenketten werden in Strings gespeichert. Bisher haben wir den Begriff String als die Bezeichnung eines einfachen Datentyps angesehen. Tatsächlich ist String aber eine Klasse. Objekte der Klasse String, also Zeichenketten, verfügen somit über Eigenschaften und Methoden, ähnlich wie Sie dies bereits bei Datenfeldern (Klasse Array) sehen konnten.

Beim Kopieren verhält sich ein Objekt der Klasse String allerdings wie eine einfache Variable und nicht wie ein Objekt: Falls eine Zeichenkette einer anderen Zeichenkette zugewiesen wird, dann sind diese beiden Zeichenketten voneinander unabhängig. Eine Veränderung des Originals hat keine Veränderung der Kopie zur Folge.

Die Methoden der Klasse String (wie auch die Methoden vieler anderer Klassen, die Visual Basic bereitstellt) sind häufig überladen, d. h., es gibt mehrere Möglichkeiten, sie aufzurufen. In diesem Buch werden nicht alle Überladungen erläutert, sondern nur das grundsätzliche Verhalten der Methoden an Beispielen gezeigt. Dank IntelliSense können Sie sich aber über die weiteren Möglichkeiten schnell informieren, wenn Sie einmal erkannt haben, welche Methode für den gedachten Einsatzzweck benötigt wird.


Rheinwerk Computing - Zum Seitenanfang

6.1.1 Eigenschaften der Klasse StringZur nächsten ÜberschriftZur vorigen Überschrift

Ein Objekt der Klasse String hat folgende Eigenschaften:

  • Length: gibt die Anzahl der Zeichen, also die Zeichenkettenlänge an
  • Chars: eine Liste der einzelnen Zeichen der Zeichenkette

Im nachfolgenden Programm (Projekt StringGrundlagen) wird die Länge ausgegeben, siehe Abbildung 6.1.

Public Class Form1
Private Sub cmdLänge_Click(...) Handles ...
Dim eingabe As String
Dim anzeige As String

eingabe = txtEingabe.Text
anzeige = "Länge: " & eingabe.Length
lblAnzeige.Text = anzeige
'lblAnzeige.Text = "Länge: " &
' txtEingabe.Text.Length
End Sub
End Class

Listing 6.1 Projekt »StringGrundlagen«, Länge

Abbildung

Abbildung 6.1 Länge einer Zeichenkette

Zur Erläuterung:

  • Die im Textfeld eingegebene Zeichenkette wird in einer Variablen vom Datentyp String gespeichert.
  • Die Länge der Zeichenkette wird mit eingabe.Length ermittelt.
  • Die auszugebende Zeichenkette wird zusammengesetzt und ausgegeben.
  • Sie hätten diesen gesamten Ablauf auch auf die letzte, auskommentierte Anweisung verkürzen können. Die Eigenschaft Text des Textfelds ist ebenfalls vom Typ String. Somit können die Eigenschaften und Methoden auch direkt auf txtEingabe.Text angewendet werden. In diesem Abschnitt wird jedoch bewusst die ausführlichere und übersichtlichere Variante gewählt.

Die einzelnen Zeichen einer Zeichenkette werden wie Feldelemente nummeriert, also beginnend bei 0. Im folgenden Programm (auch im Projekt StringGrundlagen) werden alle Zeichen der Zeichenkette mit ihrer laufenden Nummer ausgegeben, siehe Abbildung 6.2.

Public Class Form1
[...]
Private Sub cmdZeichen_Click(...) Handles ...
Dim eingabe As String
Dim zeichen As Char
Dim i As Integer
Dim anzeige As String

eingabe = txtEingabe.Text
anzeige = "Zeichen:" & vbCrLf
For i = 0 To eingabe.Length – 1
zeichen = eingabe.Chars(i)
anzeige &= i & ": " & zeichen & vbCrLf
Next
lblAnzeige.Text = anzeige
End Sub
End Class

Listing 6.2 Projekt »StringGrundlagen«, Zeichen

Zur Erläuterung:

  • Die Variable zeichen wird deklariert mit dem Datentyp Char. In einer solchen Variablen kann genau ein Zeichen gespeichert werden.
  • Die Zeichenkette wird mithilfe einer For-Schleife vom ersten bis zum letzten Element durchlaufen. Zur Begrenzung der Schleife wird wiederum die Eigenschaft Length benötigt. Innerhalb der Schleife werden die beiden folgenden Schritte durchlaufen:
    • Die Eigenschaft Chars(nummer) liefert das Zeichen der Zeichenkette an der Position nummer. Dieses Zeichen wird einzeln gespeichert.
    • Die laufende Nummer des Zeichens und das Zeichen selber werden ausgegeben.

Abbildung

Abbildung 6.2 Einzelne Zeichen mit laufender Nummer


Rheinwerk Computing - Zum Seitenanfang

6.1.2 TrimmenZur nächsten ÜberschriftZur vorigen Überschrift

Die Methode Trim() dient zum Entfernen von unerwünschten Zeichen am Anfang und am Ende einer Zeichenkette. Meist sind dies Leerzeichen, Trim() kann allerdings auch mehrere verschiedene Zeichen gleichzeitig entfernen. Die Methoden TrimStart() und TrimEnd() bewirken das Gleiche wie Trim(), nur eben am Anfang oder am Ende.

Man stellt häufig fest, dass Benutzer eines Programms bei der Eingabe von größeren Datenmengen dazu neigen, unnötige Leerzeichen einzufügen. Zumindest die Leerzeichen am Anfang und am Ende lassen sich schnell mit Trim() entfernen, bevor diese Daten in einer Datei oder Datenbank gespeichert werden. Für unnötige Leerzeichen mitten im Text benötigt man die Methode Replace(), die in Abschnitt 6.1.8 genauer erläutert wird. Ein Beispiel (auch im Projekt StringGrundlagen) sehen Sie in Abbildung 6.3.

Public Class Form1
[...]
Private Sub cmdTrimmen_Click(...) Handles ...
Dim eingabe As String
Dim getrimmt As String
Dim anzeige As String

eingabe = txtEingabe.Text
getrimmt = eingabe.Trim(" ", ";", "#")

anzeige = "Getrimmt: |" & getrimmt & "|"
lblAnzeige.Text = anzeige
End Sub
End Class

Listing 6.3 Projekt »StringGrundlagen«, Trimmen

Abbildung

Abbildung 6.3 Leerzeichen an Anfang und Ende entfernt

Zur Erläuterung:

  • Die Methode Trim() erwartet eine beliebig lange Reihe von Variablen des Datentyps Char. Im vorliegenden Fall sind dies das Leerzeichen, das Semikolon und die Raute.
  • Diese Zeichen werden am Anfang und am Ende der Zeichenkette gelöscht.
  • In der Ausgabe wurde zur Verdeutlichung das Pipe-Zeichen als optischer Begrenzer am Anfang und am Ende angefügt.
  • Falls gar kein Zeichen übergeben wird, also Trim() ohne Parameter aufgerufen wird, dann werden Leerzeichen entfernt.

Rheinwerk Computing - Zum Seitenanfang

6.1.3 SplittenZur nächsten ÜberschriftZur vorigen Überschrift

Die Methode Split() wird benötigt, wenn eine Zeichenkette anhand eines Trennzeichens zerlegt werden soll. Dies kann eine Zeile aus einer Datei sein, die aus mehreren Einzelinformationen besteht. Es kann ebenso ein Satz sein, der in seine Worte zerlegt werden soll, oder ein Datensatz, dessen einzelne Felder durch das Zeichen ; (Semikolon) voneinander getrennt sind.

Das Semikolon wird häufig als Trennzeichen bei der Erstellung sogenannter CSV-Dateien benutzt. Diese CSV-Dateien können beim Export aus fast allen Datenbanksystemen erstellt werden und stellen somit ein universelles Austauschformat dar.

Es wird ein Feld von Strings zurückgeliefert. Die einzelnen Elemente des Felds sind die Teile der Gesamtzeichenkette vor und nach dem Trennzeichen. Das Trennzeichen selber wird nicht mehr gespeichert. Ein Beispiel dazu, ebenfalls im Projekt StringGrundlagen, sehen Sie in Abbildung 6.4.

Public Class Form1
[...]
Private Sub cmdSplitten_Click(...) Handles ...
Dim eingabe As String
Dim teil() As String
Dim i As Integer

eingabe = txtEingabe.Text
teil = eingabe.Split(";")
lblAnzeige.Text = "Worte:" & vbCrLf
For i = 0 To teil.Count – 1
lblAnzeige.Text &= "Wort " &
i & ": " & teil(i) & vbCrLf
Next
End Sub
End Class

Listing 6.4 Projekt »StringGrundlagen«, Splitten

Abbildung

Abbildung 6.4 Zerlegte Zeichenkette

Zur Erläuterung:

  • Es wird ein Feld von Strings mit dem Namen teil deklariert. Dieses Feld hat keine Größenangabe, da man nicht weiß, wie viele Bestandteile die Zeichenkette hat.
  • Die Methode Split() erwartet eine beliebig lange Reihe von Variablen des Datentyps Char als Trennzeichen. Im vorliegenden Fall ist dies nur das Semikolon.
  • Wird gar kein Zeichen übergeben, also Split() ohne Parameter aufgerufen, so wird das Leerzeichen als Trennzeichen genommen.
  • Split() liefert ein Feld von Strings, diese werden in dem Feld teil gespeichert.
  • Mithilfe einer For-Schleife wird das Feld vollständig durchlaufen. Zur Begrenzung der Schleife wird die Eigenschaft Count des Felds benötigt. Sie gibt die Anzahl der Feldelemente an.
  • Innerhalb der Schleife wird jeder einzelne Teil der Zeichenkette, zusammen mit seiner laufenden Nummer, ausgegeben.

Rheinwerk Computing - Zum Seitenanfang

6.1.4 SuchenZur nächsten ÜberschriftZur vorigen Überschrift

Müssen Sie untersuchen, ob (und an welcher Stelle) eine bestimmte Zeichenkette in einer anderen Zeichenkette vorkommt, so können Sie die Methoden IndexOf(), LastIndexOf() oder IndexOfAny() nutzen. Verläuft die Suche erfolglos, so wird der Wert –1 zurückgegeben.

Bei IndexOf() wird normalerweise die erste Position gefunden, an der die Suchzeichenkette beginnt. Sie können IndexOf() aber auch veranlassen, die Suche erst ab einer bestimmten Stelle innerhalb der Zeichenkette zu beginnen.

Es folgt ein Beispiel mit einer einfachen Suche (auch im Projekt StringGrundlagen), zu sehen in Abbildung 6.5.

Public Class Form1
[...]
Private Sub cmdSucheEins_Click(...) Handles ...
Dim eingabe As String
Dim such As String
Dim position As Integer
Dim anzeige As String

eingabe = txtEingabe.Text
such = txtSuche.Text
position = eingabe.IndexOf(such)

anzeige = "Suchtext bei Zeichen: " & position
lblAnzeige.Text = anzeige
End Sub
End Class

Listing 6.5 Projekt »StringGrundlagen«, einmalige Suche

Abbildung

Abbildung 6.5 Suche nach dem Suchtext »ab«

Zur Erläuterung:

  • Der gesuchte Text wird eingegeben und in der Variablen such gespeichert.
  • Durch den Aufruf eingabe.IndexOf(such) wird nach der ersten Position gesucht, an der such innerhalb von eingabe steht.
  • Diese Position wird ausgegeben. Erscheint als Ergebnis der Wert 0, bedeutet dies, dass die Suchzeichenkette unmittelbar am Anfang der untersuchten Zeichenkette steht.

Im nächsten Beispiel wird nach allen Vorkommen einer Suchzeichenkette innerhalb einer anderen Zeichenkette gesucht (ebenfalls im Projekt StringGrundlagen), siehe Abbildung 6.6.

Public Class Form1
[...]
Private Sub cmdSucheAlle_Click(...) Handles ...
Dim eingabe As String
Dim such As String
Dim position As Integer
Dim suchstart As Integer = 0
Dim anzeige As String
Dim anzahl As Integer = 0

eingabe = txtEingabe.Text
such = txtSuche.Text

anzeige = "Suchtext bei Zeichen:" & vbCrLf
Do
position = eingabe.
IndexOf(such, suchstart)
suchstart = position + 1
If position = –1 Then
Exit Do
Else
anzeige &= position & vbCrLf
anzahl += 1
End If
Loop
anzeige &= "Anzahl: " & anzahl
lblAnzeige.Text = anzeige
End Sub
End Class

Listing 6.6 Projekt »StringGrundlagen«, mehrmalige Suche

Abbildung

Abbildung 6.6 Suchtext »a« mehrfach gefunden

Zur Erläuterung:

  • Innerhalb einer Do-Loop-Schleife wird mehrmals nach der Suchzeichenkette gesucht. Da es von den Benutzereingaben abhängt, wie häufig die Suchzeichenkette vorkommt und ob sie überhaupt vorkommt, können Sie keine For-Schleife einsetzen.
  • Die Startposition (die Variable suchstart) wird bei diesem Suchlauf immer wieder neu eingestellt. Sie steht zunächst bei 0, folglich beginnt die Suche am Anfang der untersuchten Zeichenkette. Beim nächsten Durchlauf beginnt die Suche ein Zeichen hinter dem letzten gefundenen Vorkommen.
  • Die Schleife wird verlassen, sobald ein Suchlauf ergibt, dass die Suchzeichenkette nicht noch einmal vorhanden ist. Anderenfalls werden die gefundene Position ausgegeben und der Zähler erhöht.
  • Zuletzt wird der Zähler ausgegeben.

Rheinwerk Computing - Zum Seitenanfang

6.1.5 EinfügenZur nächsten ÜberschriftZur vorigen Überschrift

Die Methode Insert() ermöglicht das Einfügen einer Zeichenkette in eine andere Zeichenkette. Mit dieser Methode umgehen Sie das Zerlegen und erneute Zusammensetzen der Zeichenkette.

Die Position der Einfügestelle muss angegeben werden. Sie muss innerhalb der Zeichenkette liegen, da sonst eine Ausnahme vom Typ ArgumentOutOfRangeException auftritt.

Entweder müssen Sie also diese Ausnahme behandeln oder dafür sorgen, dass die Einfügestelle richtig gewählt wird. In folgendem Programm (Projekt StringEinfügen) wurde mithilfe einer Ereignissteuerung die zweite Möglichkeit gewählt, siehe Abbildung 6.7.

Public Class Form1
Private Sub cmdEinfügen_Click(...) Handles ...
Dim eingabe As String
Dim einfügen As String
Dim anzeige As String

eingabe = txtEingabe.Text
einfügen = txtEinfügen.Text
anzeige = eingabe.Insert(
numEinfügen.Value, einfügen)

lblAnzeige.Text = anzeige
End Sub

Private Sub txtEingabe_TextChanged(...
) Handles txtEingabe.TextChanged
Dim eingabe As String
eingabe = txtEingabe.Text
numEinfügen.Maximum = eingabe.Length
End Sub
End Class

Listing 6.7 Projekt »StringEinfügen«

Abbildung

Abbildung 6.7 Einfügen von Zeichen in eine Zeichenkette

Zur Erläuterung:

  • Der Benutzer gibt einen einzufügenden Text ein und wählt in dem Zahlenauswahlfeld eine Einfügeposition aus.
  • Anschließend wird der einzufügende Text an dieser Position in die Originalzeichenkette gesetzt. Die folgenden Zeichen werden entsprechend nach hinten verschoben.
  • Das Zahlenauswahlfeld (NumericUpDown) wird zur Entwicklungszeit auf die Werte Minimum = 0, Value = 0 und Maximum = 0 eingestellt. Es kann also zunächst nur die Einfügeposition 0 ausgewählt werden.
  • Beim Ereignis txtEingabe_TextChanged, also bei jeder Eingabe oder Änderung der Originalzeichenkette, wird sofort die zugehörige Ereignisprozedur aufgerufen. Darin wird die Länge des eingegebenen Textes ermittelt. Dieser Wert wird als neues Maximum für das Zahlenauswahlfeld genommen. Damit gewährleisten Sie, dass der Benutzer keine Einfügeposition wählen kann, die außerhalb der Originalzeichenkette liegt.
  • Wenn der Benutzer im Zahlenauswahlfeld z. B. die Position des letzten Zeichens als Einfügeposition gewählt hat und anschließend die Originalzeichenkette verkürzt, dann verändert sich auch sofort der eingestellte Wert des Zahlenauswahlfelds. Grund hierfür ist, dass der aktuelle Wert oberhalb des Maximums liegt – dies lässt das Zahlenauswahlfeld nicht zu.

Rheinwerk Computing - Zum Seitenanfang

6.1.6 LöschenZur nächsten ÜberschriftZur vorigen Überschrift

Die Methode Remove() dient zum Löschen von Zeichen aus einer Zeichenkette. Auch mit dieser Methode umgehen Sie ein Zerlegen und erneutes Zusammensetzen der Zeichenkette. Die Position der Löschstelle müssen Sie angeben.

Weder die Position der Löschstelle noch eines der zu löschenden Zeichen darf außerhalb der Zeichenkette liegen, da sonst wiederum eine Ausnahme vom Typ ArgumentOutOfRangeException auftritt.

Im folgenden Programm (Projekt StringLöschen) wurde dies ähnlich wie im vorherigen Programm umgangen, siehe Abbildung 6.8.

Public Class Form1
Private Sub cmdLöschen_Click(...) Handles ...
Dim eingabe As String
Dim anzeige As String
eingabe = txtEingabe.Text
anzeige = eingabe.Remove(
numPosition.Value, numAnzahl.Value)
lblAnzeige.Text = anzeige
End Sub

Private Sub txtEingabe_TextChanged(...
) Handles txtEingabe.TextChanged
Dim eingabe As String
eingabe = txtEingabe.Text
numAnzahl.Maximum = eingabe.Length
numPosition.Maximum = eingabe.Length – 1
End Sub

Private Sub numPosition_ValueChanged(...
) Handles numPosition.ValueChanged
Dim eingabe As String
eingabe = txtEingabe.Text
numAnzahl.Maximum =
eingabe.Length – numPosition.Value
End Sub
End Class

Listing 6.8 Projekt »StringLöschen«

Abbildung

Abbildung 6.8 Löschen von Zeichen aus einer Zeichenkette

Zur Erläuterung:

  • Der Benutzer wählt in den beiden Zahlenauswahlfeldern aus, ab welcher Position er wie viele Zeichen löschen möchte.
  • Anschließend werden die entsprechenden Zeichen gelöscht und die nachfolgenden Zeichen werden nach vorne verschoben.
  • Beide Zahlenauswahlfelder werden zur Entwicklungszeit auf die Werte Minimum = 0, Value = 0 und Maximum = 0 eingestellt. Es können also zunächst nur die Löschposition 0 und die Anzahl 0 ausgewählt werden.
  • Bei jeder Eingabe oder Änderung der Originalzeichenkette werden die Maxima für die beiden Zahlenauswahlfelder neu eingestellt. Damit ist gewährleistet, dass der Benutzer keine Löschposition wählen kann, die außerhalb der Originalzeichenkette liegt. Außerdem kann die Anzahl der zu löschenden Zeichen nicht größer sein als die Anzahl der vorhandenen Zeichen.
  • Sobald der Benutzer die Löschposition verändert, wird die maximal wählbare Anzahl der zu löschenden Zeichen ebenfalls verändert. Wird die Löschposition z. B. um 1 erhöht, so wird die Anzahl um 1 herabgesetzt.

Rheinwerk Computing - Zum Seitenanfang

6.1.7 Teilzeichenkette ermittelnZur nächsten ÜberschriftZur vorigen Überschrift

Zur Extraktion eines Teils einer Zeichenkette nutzen Sie die Methode Substring(). Es müssen Startposition und Länge der gewünschten Teilzeichenkette angegeben werden.

Weder die Position noch eines der zu extrahierenden Zeichen darf außerhalb der Zeichenkette liegen, da sonst wiederum eine Ausnahme vom Typ ArgumentOutOfRangeException auftritt.

Analog zu den vorherigen Programmen wurde diese Vorgabe wie in Abbildung 6.9 zu sehen (Projekt StringTeilzeichenkette) gelöst:

Public Class Form1
Private Sub cmdAnzeigen_Click(...) Handles ...
Dim eingabe As String
Dim anzeige As String

eingabe = txtEingabe.Text
anzeige = eingabe.Substring(
numPosition.Value, numLänge.Value)

lblAnzeige.Text = anzeige
End Sub

Private Sub txtEingabe_TextChanged(...
) Handles txtEingabe.TextChanged
Dim eingabe As String
eingabe = txtEingabe.Text
numPosition.Maximum = eingabe.Length – 1
numLänge.Maximum = eingabe.Length
End Sub

Private Sub numPosition_ValueChanged(...
) Handles numPosition.ValueChanged
Dim eingabe As String
eingabe = txtEingabe.Text
numLänge.Maximum =
eingabe.Length – numPosition.Value
End Sub
End Class

Listing 6.9 Projekt »StringTeilzeichenkette«

Abbildung

Abbildung 6.9 Teilstring ermitteln

Zur Erläuterung:

  • Der Benutzer wählt in den beiden Zahlenauswahlfeldern aus, ab welcher Position er wie viele Zeichen extrahieren möchte.
  • Anschließend werden die entsprechenden Zeichen kopiert.
  • Eine Änderung der Originalzeichenkette hat (wie beim Löschen) Auswirkungen auf die Maxima der beiden Zahlenauswahlfelder. Daher kann die Ausnahme ArgumentOutOfRangeException nicht auftreten.

Rheinwerk Computing - Zum Seitenanfang

6.1.8 Zeichen ersetzenZur nächsten ÜberschriftZur vorigen Überschrift

Mithilfe der Methode Replace() kann wie beim Suchen und Ersetzen in einem Textverarbeitungssystem jedes Vorkommen einer gesuchten Zeichenkette durch eine andere Zeichenkette ersetzt werden.

Das folgende Programm liefert hierfür ein Beispiel (Projekt StringErsetzen), siehe Abbildung 6.10.

Public Class Form1
Private Sub cmdErsetzen_Click(...) Handles ...
Dim eingabe As String
Dim suchen As String
Dim ersetzen As String
Dim anzeige As String

eingabe = txtEingabe.Text
suchen = txtSuchen.Text
ersetzen = txtErsetzen.Text

anzeige = eingabe.Replace(suchen, ersetzen)
lblAnzeige.Text = anzeige
End Sub
End Class

Listing 6.10 Projekt »StringErsetzen«

Abbildung

Abbildung 6.10 Ersetzen einer Zeichenkette

Zur Erläuterung:

  • Jedes Vorkommen der Zeichenfolge aus dem Textfeld unter dem Begriff Ersetze: wird ersetzt durch die Zeichenfolge aus dem Textfeld unter dem Begriff durch:.

Rheinwerk Computing - Zum Seitenanfang

6.1.9 Ausgabe formatierenZur vorigen Überschrift

Die Methode Format() der Klasse String kann zur einheitlichen Formatierung verwendet werden. Dies ist vor allem bei der einheitlichen Ausgabe von Tabellen, z. B. innerhalb einer ListBox oder eines Labels wichtig.

Voraussetzung ist eine nicht-proportionale Schriftart. Dies ist eine Schriftart, bei der jedes Zeichen die gleiche Breite beansprucht. Einsatz findet eine solche Formatierung auch bei der Ausgabe einer Konsolenanwendung, siehe Abschnitt 4.9.5.

Einige Beispiele im Projekt StringFormatieren, siehe Abbildung 6.11:

Public Class Form1
Private Sub cmdAnzeige_Click(...) Handles ...
Dim i As Integer
Dim format, ausgabe As String
Dim stadt() As String = {"München", "Berlin",
"Bonn", "Bremerhaven", "Ulm"}

lstA.Items.Clear()
lblA.Text = ""
format = "{0,-15}{1,9:0.0000}{2,12:#,##0.0}"

For i = 0 To 4
ausgabe = String.Format(format,
stadt(i), i / 7.0, i * 10000.0 / 7)
lstA.Items.Add(ausgabe)
lblA.Text += ausgabe + vbCrLf
Next i
End Sub
End Class

Listing 6.11 Projekt »StringFormatieren«

Abbildung

Abbildung 6.11 Formatieren in ListBox und Label

Zur Erläuterung:

  • Zur Entwicklungszeit wurde die Schriftart der ListBox und des Labels über die Eigenschaft Font auf Courier New, eine nicht-proportionale Schriftart, gestellt.
  • Das gewünschte Format kann in einer Zeichenkette (hier format) gespeichert werden, um es möglichst häufig an passsender Stelle einzusetzen. Innerhalb der Schleife wird es als erster Parameter der Methode Format() genutzt. In der Formatierungszeichenkette steht:
    • die Nummer der Variablen, beginnend mit der Nummer 0
    • ein Doppelpunkt
    • die zugehörige Formatierung
  • {0,-15}: Als Erstes wird eine Zeichenkette ausgegeben, in der Mindestgesamtbreite 15. Sie erscheint linksbündig, wegen des Minuszeichens vor der 15.
  • {1,9:0.0000}: Es folgt eine Zahl, in der Mindestgesamtbreite 9, gerundet auf vier Nachkommastellen. Sie erscheint rechtsbündig, dies ist der Standard.
  • {2,12:#,##0.0}: Als Letztes folgt wiederum eine Zahl, in der Mindestgesamtbreite 12, gerundet auf eine Nachkommastelle, rechtsbündig. Falls die Zahl mehr als drei Stellen vor dem Komma hat, so wird ein Tausenderpunkt angezeigt.
  • Das Formatierungszeichen 0 steht für eine Ziffer, die auf jeden Fall angezeigt wird, das Formatierungszeichen # steht für eine Ziffer, die nur dann angezeigt wird, falls die Zahl diese Ziffer hat.


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: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
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: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


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





Copyright © Rheinwerk Verlag GmbH 2013
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