wie im obigen Bild zu sehen schreibe ich per InputBox eine neue Zeile in eine Textdatei
das hier ist der Code zum hinzufügen der Protokolleinträgen!
Public Sub protokolleintrag()
' 1. Benutzereingabe abrufen
Dim protokollEintrag As String = InputBox("Bitte geben Sie den" & _
"Protokolleintrag ein:", "Protokollierung")
' 2. Prüfen, ob etwas eingegeben wurde
If Not String.IsNullOrEmpty(protokollEintrag) Then
' Basisverzeichnis festlegen (z.B. in den Anwendungsdaten oder
' einem spezifischen Pfad)
Dim baseDirectory As String = Path.Combine( _
Environment.CurrentDirectory, "Protokolle")
Dim dateValue As DateTime = Date.Now.ToShortDateString
' Wochenordnerpfad erstellen (Format: YYYY-KWXX)
' Die Kalenderwoche kann je nach lokaler Einstellung variieren,
' daher wird hier ein einfacher Ansatz gewählt.
Dim weekNum As Integer = _
System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekO_
fYear(dateValue, System.Globalization.CalendarWeekRule.FirstDay, _
DayOfWeek.Monday)
Dim currentWeekFolder As String = Path.Combine(baseDirectory, _
dateValue.Year & "-" & weekNum.ToString("00"))
' Prüfen, ob der Wochenordner existiert, und ihn erstellen, falls
' nicht
If Not Directory.Exists(currentWeekFolder) Then
Directory.CreateDirectory(currentWeekFolder)
End If
' Täglichen Dateinamen erstellen (Format: JJJJ-MM-TT.log)
Dim dailyLogFileName As String = DateTime.Now.ToString( _
"yyyy-MM-dd") & ".log"
Dim fullPath As String = Path.Combine(currentWeekFolder, _
dailyLogFileName)
' Protokollnachricht mit Zeitstempel anhängen
Try
Using sw As StreamWriter = File.AppendText(fullPath)
sw.WriteLine(DateTime.Now.ToString("HH:mm:ss") & " - " & _
protokollEintrag.ToString)
End Using
Catch ex As Exception
MessageBox.Show("Fehler beim Schreiben der Protokolldatei: " & _
ex.Message)
End Try
End If
End Subnach füllen der Baumansicht im AfterSelect lese ich die Datei in eine RichtextBox ein, das passt auch
Private Sub TreeView2_AfterSelect(sender As Object, e As TreeViewEventArgs) _
Handles TreeView2.AfterSelect
' Prüfen, ob ein Knoten ausgewählt ist
If e.Node IsNot Nothing Then
' Den Dateipfad aus der Tag-Eigenschaft des ausgewählten Knotens
' abrufen
Dim selectedFilePath As String = CType(e.Node.Tag, String)
' Prüfen, ob der Pfad gültig ist und ob es sich um eine Datei
' handelt
If Not String.IsNullOrEmpty(selectedFilePath) AndAlso _
System.IO.File.Exists(selectedFilePath) Then
Try
' Den gesamten Text aus der Datei lesen und in der TextBox
' anzeigen
RichTextBox1.Text = System.IO.File.ReadAllText( _
selectedFilePath)
TextBoxDateiname.Text = e.Node.Text
Catch ex As Exception
' Fehlerbehandlung, falls die Datei nicht gelesen werden
' kann (z.B. Berechtigungen)
MessageBox.Show("Fehler beim Lesen der Datei: " & _
ex.Message, "Fehler", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
RichTextBox1.Clear()
End Try
Else
' Wenn es kein Dateiknoten ist oder die Datei nicht existiert,
' die TextBox leeren
RichTextBox1.Clear()
End If
End If
End Subwie kann ich es erreichen, immer wenn ich einen Eintrag hinzufüge soll er das TreeView neu laden (das ist noch kein Problem)
Problem ist : quasi zu dem entspechenden Node springen bzw. den auch selektieren so das man den hinzugefügten String in der Richtextbox hat
im Afterselect Ereignis funktioniert es, möchte das aber gleich sehen
go to the last Node oder sowas ?
für eure Unterstützung dabei schon mal danke |