如何用VB.NET中的空格替换文本文件中的“坏字符”

时间:2013-11-22 21:41:54

标签: vb.net filestream streamreader streamwriter

我正在尝试删除文本文件中的数据。我解析文件,如果我发现一个坏字符,我用空格替换它。我的问题是空间没有覆盖坏人物。相反,空间写在第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

1 个答案:

答案 0 :(得分:0)

我真的不喜欢你为读者和写作者分享文件流的想法,因为我因此而遇到了很多“不合理”的问题。

我倾向于在使用Idiposable对象时使用'使用'语句完成所做的保证,并且您没有收到有线错误。

试试这个,也许它有所帮助,这样做总是更好。

Using Statement