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 Module17 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 Tab
Dateien
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 Module4 Zeilen > eins > zwei > drei > vier eins neu|fertig| True 11 False b.txt .txt a.txt,b.txt
Datum 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 Module2024-03-15 14:30 2024 3 15 5 04.04.2024 December 2023 365 True 29 2024-03-15 2.25 True 60 True
Fehlerbehandlung
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 Module5 Division durch null finally läuft immer InvalidCast gefangen: eigener Fehler Index außerhalb Nothing-Zugriff
Merke
- 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
Aufgabe
Lies eine Textdatei und gib Zeilenanzahl und längste Zeile aus.