Eine Textbox soll den Inhalt einer Textdatei ausgeben und bei Veränderung (last change) sich ändern

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Eine Textbox soll den Inhalt einer Textdatei ausgeben und bei Veränderung (last change) sich ändern

    Aus Text aus Textdatei auslesen ausgelagert.

    Hallo,

    ich habe eine ähnliche Aufgabenstellung. Eine Textbo soll
    den Inhalt eines Textdatei ausgeben und bei Veränderung (last change)
    sich ändern

    VB.NET-Quellcode

    1. ' Alarmticker TEST
    2. Private Sub TextBox1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. On Error GoTo ErrorHandler
    4. TextBox1.Text = IO.File.ReadAllText("C:\Temp\elw\alarmticker.txt", System.Text.Encoding.Default)
    5. Exit Sub
    6. ErrorHandler:
    7. TextBox1.Text = IO.File.ReadAllText("res\connectbrdd.txt", System.Text.Encoding.Default)
    8. Dim watched As String = System.IO.Path.GetDirectoryName("C:\Temp\elw")
    9. Dim fsw As New FileSystemWatcher(watched)
    10. Me.Text = "Monitoring: " & fsw.Path
    11. fsw.IncludeSubdirectories = False
    12. fsw.NotifyFilter = NotifyFilters.LastWrite
    13. AddHandler fsw.Changed, AddressOf fsw_Changed
    14. fsw.EnableRaisingEvents = True
    15. End Sub
    16. Private Sub fsw_Changed(ByVal sender As Object, ByVal e As FileSystemEventArgs)
    17. TextBox1.Text = System.IO.Path.GetFileName("C:\Temp\elw\alarmticker.txt")
    18. End Sub
    19. ' Test Ende


    Soweit - so gut. Der Text wird angezeigt, aber Änderungen werden überhaupt nicht übernommen... was mache ich falsch?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Wat? On Error GoTo ErrorHandler? Alles VB6 oder wie? Wenn ErrorHandling, dann Try-Catch. Aber hey: Was soll denn da bitte passieren? Dass die Datei nicht gefunden wird? Das geht mit IO.File.Exists(Dateipfad) einfacher.
    Es soll sich was ändern, ok. Der FSW reagiert auch bestimmt auf Änderungen und meldet die auch, sodass Deine fsw_Changed-Sub aufgerufen wird. Und jetzt schau Dir mal bitte genau den Inhalt jener Sub an und sag uns selber, wo der Fehler liegt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Was soll denn da bitte passieren?
    Möglichkeiten sehe ich viele.
    - Dass die Datei blockiert ist.
    - Dass die Datei zwischen File.Exists und ReadAllText gelöscht wird (ich habe schon Pferde kotzen sehen).
    - Dass die Datei existiert, aber der User keine Leseberechtigung hat.
    - ...

    Eine Fehlerbehandlung halte ich schon für angebracht.
    Aber wie du schon erwähnt hast, ist ein selektives Try...Catch die Variante der Wahl.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    proxy_sam schrieb:

    VB.NET-Quellcode

    1. Dim fsw As New FileSystemWatcher(watched)
    Die Deklaration des FSW muss aus der Prozedur in die Klasse.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!