StreamWriter nervt

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von dussl.

    StreamWriter nervt

    Hallo,
    ich habe das Problem das wenn der StreamWriter was schreiben soll wird er einfach übersprungen und es kommt zu Fehlern. Könnte es sein das ich was an dem Writer falsch gemacht hab?

    VB.NET-Quellcode

    1. Dim background As IO.StreamWriter = New IO.StreamWriter("C:\abc\def\background.txt") 'Sagt dem Writer wo die Datei liegt
    2. background.WriteLine("xyz") 'Schreibt es in die Datei rein
    3. background.Close() 'Schließt den Writer
    Nagut der ist nur etwas lang. Zudem hab ich die Pfade und Internet Adressen durch abcdef ersetzt. Es soll ein Newsupdater sein, also ein Programm das z.B. News aus einem Textdokument welches sich auf einem FTP Server befindet runterlädt und anzeigt. Fragt aber nicht allzuviel dazu, das ist für meine HP ^^

    VB.NET-Quellcode

    1. ToolStripStatusLabel2.Text = "Laden"
    2. ToolStripProgressBar1.Style = ProgressBarStyle.Marquee
    3. Try
    4. If My.Computer.FileSystem.DirectoryExists("C:\abc\def") = False Then
    5. My.Computer.FileSystem.CreateDirectory("C:\abc\def")
    6. End If
    7. If My.Computer.FileSystem.FileExists("C:\abc\def\portnumber.txt") = False Then
    8. IO.File.CreateText("C:\abc\def\portnumber.txt")
    9. End If
    10. If My.Computer.FileSystem.FileExists("C:\abc\def\note.txt") = False Then
    11. IO.File.CreateText("C:\abc\def\note.txt")
    12. End If
    13. If My.Computer.FileSystem.FileExists("C:\abc\def\background.txt") = False Then
    14. IO.File.CreateText("C:\abc\def\background.txt")
    15. Dim background As IO.StreamWriter = New IO.StreamWriter("C:\abc\def\background.txt")
    16. background.WriteLine("Black")
    17. background.Close()
    18. Else
    19. Dim backgroundload As New IO.StreamReader("C:\abc\def\background.txt")
    20. BackColor = Color.FromName(backgroundload.ReadLine)
    21. Form3.Label2.Text = backgroundload.ReadLine
    22. backgroundload.Close()
    23. End If
    24. Catch ex As Exception
    25. ToolStripStatusLabel2.Text = "Fehler"
    26. ToolStripProgressBar1.Style = ProgressBarStyle.Blocks
    27. MsgBox("Es ist ein kritischer Fehler aufgetreten, im Block Form1_Load!", MsgBoxStyle.Critical, "Fehler")
    28. End Try
    29. If My.Computer.FileSystem.FileExists("C:\abc\def\importantmessage.txt") Then
    30. My.Computer.FileSystem.DeleteFile("C:\abc\def\importantmessage.txt")
    31. End If
    32. If My.Computer.FileSystem.FileExists("C:\abc\def\message.txt") Then
    33. My.Computer.FileSystem.DeleteFile("C:\abc\def\message.txt")
    34. End If
    35. If My.Computer.FileSystem.FileExists("C:\abc\def\version.txt") Then
    36. My.Computer.FileSystem.DeleteFile("C:\abc\def\version.txt")
    37. End If
    38. My.Computer.Network.DownloadFile("www.abc.de/message.txt", "C:\abc\def\message.txt")
    39. Dim message As New IO.StreamReader("C:\abc\def\message.txt")
    40. RichTextBox2.Text = message.ReadToEnd
    41. message.Close()
    42. My.Computer.Network.DownloadFile("www.abc.de/importantmessage.txt", "C:\abc\def\importantmessage.txt")
    43. Dim importantmessage As New IO.StreamReader("C:\abc\def\importantmessage.txt")
    44. RichTextBox1.Text = importantmessage.ReadToEnd
    45. importantmessage.Close()
    46. My.Computer.Network.DownloadFile("www.abc.de/version.txt", "C:\abc\def\version.txt")
    47. Dim version As New IO.StreamReader("C:\abc\def\version.txt")
    48. If Label4.Text = version.ReadToEnd = False Then
    49. LinkLabel1.Visible = True
    50. Else
    51. LinkLabel1.Visible = False
    52. End If
    53. version.Close()
    54. Dim note As New IO.StreamReader("C:\abc\def\note.txt")
    55. RichTextBox3.Text = note.ReadToEnd
    56. note.Close()
    57. Dim portnumber As New IO.StreamReader("C:\abc\def\portnumber.txt")
    58. TextBox1.Text = portnumber.ReadToEnd
    59. portnumber.Close()
    60. ToolStripStatusLabel2.Text = "Fertig"
    61. ToolStripProgressBar1.Style = ProgressBarStyle.Blocks
    62. Label1.Text = "Aktualisiert um: " & Now.ToShortTimeString
    63. End Sub
    Das ist ja das Problem, ich krieg keine Fehlermeldung, er sagt nur in der Kompilerlog was und das wars. Sonst kommt nichts, auch wenn ich den Try Block Auskommentier kommt keine Fehlermeldung, er überspringt die Stelle einfach und lädt das Programm nicht richtig.
    hast du den code zufällig in der form_load? wenn ja, da gibt's scheinbar bei allen probleme mit den exception-aufrufen.

    lass den code mal schritt für schritt im debugger durchlaufen und dann guck mal welche zeile das ist.

    PS: bei exceptions kannst du die offiziele fehlermeldung benutzen und musst dir nicht unbedingt den ganzen text hinschreiben

    VB.NET-Quellcode

    1. Try
    2. Catch ex As Exception
    3. MessageBox.Show(ex.Message)
    4. End Try
    Cool danke :) Problem gefunden, ich weiss nur noch nicht wie ich ihn lösen soll. Er kann nichts schreiben weil die Datei grade von einem anderen Prozess verwendet wird. Anscheind ist der erstell Prozess im weg.

    EDIT! Ich hab jetzt die Rheinfolge geändert sodass die Datei als erstes erstellt wird und als letztes beschrieben aber es geht nicht, sie wird immernoch von einem anderen Prozess verwendet. Weiss jemand wie ich das beheben kann?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dussl“ ()