Visual Basic .Net:
Ich arbeite gerade an einem Bildbearbeitungsprogramm und stellte Probleme beim Dateiauslesen fest:
Ausgangssituation:
Auf meinem Computer ist eine Datei mit dem Namen „Versuch.txt“ vorhanden. Sie besteht im Editor aus einem einzigen Zeichen: ‚â‘ (Ascii-Code 226).
Programm (vereinfacht):
Public Class Form
Private Sub but\_datei\_oeffnen\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but\_datei\_oeffnen.Click
Dim zeichen As Integer
Dim Datei As System.IO.StreamReader
Datei = New System.IO.StreamReader("C:\Versuch.txt")
zeichen = Datei.Read()
Datei.Close()
If zeichen = -1 Then
MessageBox.Show("Leere Datei C:\Versuch.txt")
Else
MessageBox.Show("Datei C:\Versuch.txt nicht leer.")
End If
End Sub
Private Sub but\_datei\_erstellen\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but\_datei\_erstellen.Click
Dim Datei As System.IO.StreamWriter
Datei = New System.IO.StreamWriter("C:\Versuch.txt")
Datei.Write("â")
Datei.Close()
MessageBox.Show("Erfolgreiches Schreiben in Datei C:\Versuch.txt.")
End Sub
End Class
Ausgabe:
Zuerst klicke ich auf den Button but_datei_oeffnen. Daraufhin öffnet sich eine Messagebox mit der Aussage „Leere Datei C:\Versuch.txt“. Wenn ich nach einem Klick auf but_datei_speichern erneut auf den zuerstgenannten Button klicke, erscheint die Meldung „Datei C:\Versuch.txt nicht leer.“.
Das erfolgreiche Auslesen der Datei erfolgt also nur bei mit dem Programm selbst erstellten Dateien???
Bei anderen Dateien ignoriert das Programm besagtes Zeichen.
Der Effekt tritt nur bei bestimmten Zeichen auf.
(Ich arbeite mit Microsoft Visual Basic Express Version, da diese kostenlos ist.)
Für mein Bildbearbeitungsprogramm ist das Auslesen aller Zeichen erforderlich. Gibt es eine Möglichkeit, um das obige Problem zu vermeiden?