我正在尝试删除文本文件中的数据。我解析文件,如果我发现一个坏字符,我用空格替换它。我的问题是空间没有覆盖坏人物。相反,空间写在第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
答案 0 :(得分:0)
我真的不喜欢你为读者和写作者分享文件流的想法,因为我因此而遇到了很多“不合理”的问题。
我倾向于在使用Idiposable对象时使用'使用'语句完成所做的保证,并且您没有收到有线错误。
试试这个,也许它有所帮助,这样做总是更好。