Logfile fortwährend auslesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Logfile fortwährend auslesen

    Hallo Freunde!

    Ich versuche mich gerade an folgendem:

    per Openfiledialog kann ich ein Textfile in eine richtextbox einlesen:

    Quellcode

    1. richTextBox1.Text = File.ReadAllText(uri, Encoding.Default);


    Das klappt soweit schon mal, nun habe ich einen Filesystemwatcher hinzugefügt der im Onchange folgendes hat:

    Quellcode

    1. using (var reader = File.OpenText(uri)) { richTextBox1.Text = reader.ReadToEnd(); }


    Der Filesystemwatcher hat als filter:

    Quellcode

    1. fileSystemWatcher1.NotifyFilter = NotifyFilters.Size;


    Meine Richtextbox wird auch brav aktualisiert. Mein Problem ist nun das meine Richtextbox erst aktualisiert wird wenn ich die Textdatei (uri) speichere. Das Ziel ist das ich ein Logfile öffnen möchte, und das soll in der Richtextbox (und dann später gruppiert in Tabs) mitgescrollt werden.

    Bin ich mit meinem Ansatz komplett falsch? Gibt es bessere Methoden um dieses Ziel zu erreichen?

    Teilweise erhalte ich (wenn ich schnell hintereinander das Textfile verändere) eine IOException bei richTextBox1.Text = reader.ReadToEnd(); .... das wird noch ein Problem werden denke ich...

    Danke vorab für eure Hilfe!

    Gruß,
    Matze
    Das Leben ist binär - du bist eine 1, oder eine 0
  • Das Problem ist, dass dein Event nur beim speichern gefeuert wird (nur dann ändert sich ja die Größe der Datei). Es gibt soweit ich weiß auch keinen eleganten Weg, eine Textdatei live mitzuplotten. Ein anderer, ebenfalls unschöner, Weg wäre der Timer. Letzendlich sind Textdateien auch nicht für den concurrent-Zugriff gemacht, weswegen es bei ungünstigem Timing von Schreib- und Lesezugriffen auch zu den Exceptions kommen kann.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]