Galileo Computing < openbook > Galileo 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
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 7,8 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in Visual Basic 2010 von Thomas Theis
Inkl. Visual Studio Express Editions
Buch: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
2., akt. und erw. Aufl., Klappbroschur, mit DVD
467 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1541-1
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.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

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.

6 Wichtige Klassen in .NET

Folgende Klassen werden in vielen Projekten eingesetzt:

  • die Klasse String zur Bearbeitung von Zeichenketten
  • die Klassen 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

Galileo Computing - Zum Seitenanfang

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

String

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.

Sonderfall

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.


Galileo Computing - Zum Seitenanfang

6.1.1 Eigenschaften der Klasse String Zur 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 6.1 Länge einer Zeichenkette

Zur Erläuterung:

  • Die im Textfeld eingegebene Zeichenkette wird in einer Variablen vom Datentyp String gespeichert.

Length

  • 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

Abbildung 6.2 Einzelne Zeichen mit laufender Nummer

Zur Erläuterung:

Char

  • 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:
  • Chars(i)

    • 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.

Galileo Computing - Zum Seitenanfang

6.1.2 Trimmen Zur nächsten ÜberschriftZur vorigen Überschrift

Trim()

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 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.

Galileo Computing - Zum Seitenanfang

6.1.3 Splitten Zur nächsten ÜberschriftZur vorigen Überschrift

Split(), Trennzeichen

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.

CSV-Datei

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 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.

Leerzeichen

  • 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.

For, Count

  • 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.

Galileo Computing - Zum Seitenanfang

6.1.4 Suchen Zur 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.

IndexOf()

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 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 6.6 Suchtext »a« mehrfach gefunden

Zur Erläuterung:

Mehrmals suchen

  • 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 wird die gefundene Position ausgegeben und der Zähler erhöht.
  • Zuletzt wird der Zähler ausgegeben.

Galileo Computing - Zum Seitenanfang

6.1.5 Einfügen Zur nächsten ÜberschriftZur vorigen Überschrift

Insert()

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.

ArgumentOutOfRange

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.

Abbildung 6.7 Einfügen von Zeichen in eine Zeichenkette

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«

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.

Galileo Computing - Zum Seitenanfang

6.1.6 Löschen Zur nächsten ÜberschriftZur vorigen Überschrift

Remove()

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.

ArgumentOutOfRange

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 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.

Galileo Computing - Zum Seitenanfang

6.1.7 Teilzeichenkette ermitteln Zur nächsten ÜberschriftZur vorigen Überschrift

Substring()

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

ArgumentOutOfRange

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 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.

Galileo Computing - Zum Seitenanfang

6.1.8 Zeichen ersetzen Zur nächsten ÜberschriftZur vorigen Überschrift

Replace()

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 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:.

Galileo Computing - Zum Seitenanfang

6.1.9 Ausgabe formatieren topZur vorigen Überschrift

Format()

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 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

Breite

  • {0:-15}: Als Erstes wird eine Zeichenkette ausgegeben, in der Mindestgesamtbreite 15. Sie erscheint linksbündig, wegen des Minuszeichens vor der 15.

Nachkommastellen

  • {1,9:0.0000}: Es folgt eine Zahl, in der Mindestgesamtbreite 9, gerundet auf vier Nachkommastellen. Sie erscheint rechtsbündig, dies ist der Standard.

Tausenderpunkt

  • {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.

0, #

  • 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.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2010






 Visual Basic 2010


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Silverlight 4






 Silverlight 4


Zum Katalog: Einstieg in Visual C# 2010






 Einstieg in
 Visual C# 2010


Zum Katalog: Visual C# 2010






 Visual C# 2010


Zum Katalog: Einstieg in PHP 5.3 und MySQL 5.4






 Einstieg in PHP 5.3
 und MySQL 5.4


Zum Katalog: PHP 5.3 und MySQL 5.4






 PHP 5.3 und
 MySQL 5.4


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2010
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.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de