Я пытаюсь избавить текстовый файл от поврежденных данных. Я разбираю файл и, если нахожу неверный символ, заменяю его пробелом. Моя проблема в том, что пробел не перезаписывает плохой символ. Вместо этого пробел написан в строке 10 позиции 27. Что здесь происходит? Я застрял на этой, казалось бы, простой задаче на полдня. Спасибо.
Sub replaceChars(fname As String)
Dim fs As New FileStream(fname, FileMode.Open, FileAccess.ReadWrite)
Dim r As New StreamReader(fs)
Dim w As New StreamWriter(fs)
Dim iChar As Integer = 0
Do Until r.Peek() = -1
iChar = r.Read()
If iChar < 32 Or iChar > 126 Then
If iChar = 13 Or iChar = 10 Then 'cr/lf, continue.
Continue Do
Else 'found a bad char. replace it.
w.Write(Chr(32))
w.Flush()
fs.Flush()
End If
Else
Continue Do
End If
Loop
w.Close()
fs.Close()
End Sub