Kurz: Module Program Sub Main() Dim s As String = “Hallo VB.NET-Welt” Console.WriteLine(s.Length & ” ” & s.ToUpper() & ” ” & s.ToLower()) Console.WriteLine(s(0) & ” ” & s.Substring(6, 2) & ” ” & s.Substring(6)).
Teil des Kurses Visual Basic .NET
Kapitel 5 von 8 im Kurs Visual Basic .NET. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.
Strings
Imports System.Text
Module Program
Sub Main()
Dim s As String = "Hallo VB.NET-Welt"
Console.WriteLine(s.Length & " " & s.ToUpper() & " " & s.ToLower())
Console.WriteLine(s(0) & " " & s.Substring(6, 2) & " " & s.Substring(6))
Console.WriteLine(s.Replace("Welt", "Erde"))
Console.WriteLine(String.Join("|", s.Split(" "c, "-"c)))
Console.WriteLine(s.Contains("VB") & " " & s.StartsWith("Hallo") & " " & s.EndsWith("x"))
Console.WriteLine(s.IndexOf("VB") & " " & s.LastIndexOf("l"))
Console.WriteLine("[" & " trim ".Trim() & "]")
Console.WriteLine(New String("*"c, 5) & " " & "ab".PadLeft(5, "_"c) & " " & "ab".PadRight(5, "_"c))
Console.WriteLine(String.Format("{0,-6}|{1,6}|{2:F2}|{3:X}", "li", "re", Math.PI, 255))
Console.WriteLine($"{42:D5} {1234567:N0} {0.256:P1}")
Console.WriteLine(CInt("17") + 1)
Dim zahl As Integer
Console.WriteLine(Integer.TryParse("abc", zahl) & " " & Integer.TryParse("42", zahl) & " " & zahl)
Console.WriteLine(Asc("A") & " " & Chr(66) & " " & AscW("a"c))
Console.WriteLine(StrReverse("Basic"))
Console.WriteLine(UCase("x") & LCase("Y"))
Console.WriteLine(Left("Visual", 3) & " " & Right("Visual", 3) & " " & Mid("Visual", 2, 3))
Console.WriteLine("abc" < "abd")
Console.WriteLine("Apfel".CompareTo("Birne"))
Console.WriteLine(String.Equals("a", "A", StringComparison.OrdinalIgnoreCase))
Dim sb As New StringBuilder()
For i As Integer = 1 To 5
sb.Append(i).Append(","c)
Next
Console.WriteLine(sb.ToString().TrimEnd(","c))
Console.WriteLine("Zeile1" & vbCrLf & "Zeile2" & vbTab & "Tab")
End Sub
End ModuleAusgabe:
17 HALLO VB.NET-WELT hallo vb.net-welt
H VB VB.NET-Welt
Hallo VB.NET-Erde
Hallo|VB.NET|Welt
True True False
6 15
[trim]
***** ___ab ab___
li | re|3.14|FF
00042 1,234,567 25.6 %
18
False True 42
65 B 97
cisaB
Xy
Vis ual isu
True
-1
True
1,2,3,4,5
Zeile1
Zeile2 TabDateien
Imports System.IO
Module Program
Sub Main()
Dim pfad As String = Path.Combine(Path.GetTempPath(), "vb-demo.txt")
File.WriteAllLines(pfad, {"eins", "zwei", "drei"})
File.AppendAllText(pfad, "vier" & vbLf)
Dim zeilen As String() = File.ReadAllLines(pfad)
Console.WriteLine(zeilen.Length & " Zeilen")
For Each z In File.ReadLines(pfad)
Console.WriteLine("> " & z)
Next
Using leser As New StreamReader(pfad)
Console.WriteLine(leser.ReadLine())
End Using
Using schreiber As New StreamWriter(pfad, False)
schreiber.WriteLine("neu")
schreiber.WriteLine("fertig")
End Using
Console.WriteLine(File.ReadAllText(pfad).Replace(vbLf, "|"))
Console.WriteLine(File.Exists(pfad) & " " & New FileInfo(pfad).Length)
File.Delete(pfad)
Console.WriteLine(File.Exists(pfad))
Console.WriteLine(Path.GetFileName("/tmp/a/b.txt") & " " & Path.GetExtension("b.txt"))
Dim verz As String = Path.Combine(Path.GetTempPath(), "vbdir")
Directory.CreateDirectory(verz)
File.WriteAllText(Path.Combine(verz, "a.txt"), "A")
File.WriteAllText(Path.Combine(verz, "b.txt"), "B")
Console.WriteLine(String.Join(",", Directory.GetFiles(verz).Select(Function(f) Path.GetFileName(f)).OrderBy(Function(f) f)))
Directory.Delete(verz, True)
End Sub
End ModuleAusgabe:
4 Zeilen
> eins
> zwei
> drei
> vier
eins
neu|fertig|
True 11
False
b.txt .txt
a.txt,b.txtDatum und Zeit
Module Program
Sub Main()
Dim d As New DateTime(2024, 3, 15, 14, 30, 0)
Console.WriteLine(d.ToString("yyyy-MM-dd HH:mm"))
Console.WriteLine(d.Year & " " & d.Month & " " & d.Day & " " & d.DayOfWeek)
Console.WriteLine(d.AddDays(20).ToString("dd.MM.yyyy"))
Console.WriteLine(d.AddMonths(-3).ToString("MMMM yyyy", Globalization.CultureInfo.InvariantCulture))
Dim differenz As TimeSpan = New DateTime(2024, 12, 31) - New DateTime(2024, 1, 1)
Console.WriteLine(differenz.TotalDays)
Console.WriteLine(DateTime.IsLeapYear(2024) & " " & DateTime.DaysInMonth(2024, 2))
Console.WriteLine(DateTime.Parse("2024-03-15").ToString("yyyy-MM-dd"))
Console.WriteLine(TimeSpan.FromMinutes(135).TotalHours)
Console.WriteLine(d > New DateTime(2024, 1, 1))
Console.WriteLine(DateDiff(DateInterval.Day, New DateTime(2024, 1, 1), New DateTime(2024, 3, 1)))
Console.WriteLine(Now.Year >= 2024)
End Sub
End ModuleAusgabe:
2024-03-15 14:30
2024 3 15 5
04.04.2024
December 2023
365
True 29
2024-03-15
2.25
True
60
TrueFehlerbehandlung
Module Program
Class MeinFehler
Inherits Exception
Public Sub New(msg As String)
MyBase.New(msg)
End Sub
End Class
Function Teile(a As Integer, b As Integer) As Integer
Return a \ b
End Function
Sub Main()
Try
Console.WriteLine(Teile(10, 2))
Console.WriteLine(Teile(1, 0))
Catch ex As DivideByZeroException
Console.WriteLine("Division durch null")
Finally
Console.WriteLine("finally läuft immer")
End Try
Try
Dim x As Integer = CInt("abc")
Catch ex As InvalidCastException
Console.WriteLine("InvalidCast")
Catch ex As FormatException
Console.WriteLine("Format: " & ex.Message.Substring(0, 10))
End Try
Try
Throw New MeinFehler("eigener Fehler")
Catch ex As MeinFehler When ex.Message.StartsWith("eigener")
Console.WriteLine("gefangen: " & ex.Message)
End Try
Try
Dim a As Integer() = {1, 2, 3}
Console.WriteLine(a(5))
Catch ex As IndexOutOfRangeException
Console.WriteLine("Index außerhalb")
End Try
Dim s As String = Nothing
Try
Console.WriteLine(s.Length)
Catch ex As NullReferenceException
Console.WriteLine("Nothing-Zugriff")
End Try
End Sub
End ModuleAusgabe:
5
Division durch null
finally läuft immer
InvalidCast
gefangen: eigener Fehler
Index außerhalb
Nothing-ZugriffMerke
- Strings: .NET-Methoden plus Funktionen wie
Left,Right,Mid,StrReverse - Dateien über
System.IO.File,Path,Directory;Usinggibt Ressourcen frei DateTimeundTimeSpanrechnen mit Datum und ZeitTry ... Catch ... When ... Finallybehandelt Ausnahmen
Übungsaufgabe
Lies eine Textdatei und gib Zeilenanzahl und längste Zeile aus.
Quiz zur Selbstkontrolle
Wofür ist Using?
- Stellt sicher, dass Ressourcen freigegeben werden (richtig)
- Importiert Namensräume
- Definiert eine Klasse
- Startet Threads
Wie fängt man eine Ausnahme ab?
- Try … Catch … End Try (richtig)
- Rescue
- Except
- On Error nur
Was macht Catch ... When?
- Fängt nur ab, wenn eine Bedingung erfüllt ist (richtig)
- Wartet auf ein Ereignis
- Wiederholt den Block
- Beendet das Programm
Weiter im Kurs
Zurück: Klassen, Vererbung und Interfaces
Weiter: Generics, Async und Nebenläufigkeit
Alle Kapitel: Visual Basic .NET im Überblick