扫描包含给定字符串的行的文本文件,并将该行替换为另一个字符串

时间:2013-03-22 13:53:02

标签: vb.net file

我想扫描我的文件中包含特定字符串“black =”的行,如果有匹配则将其替换为“blah blah”,但我不知道该怎么做。这是我尝试但它不起作用。

Dim myStreamReaderL1 As System.IO.StreamReader
myStreamReaderL1 = System.IO.File.OpenText("C:\File.txt")
myStreamReaderL1.ReadLine()
If myStreamReaderL1.ReadLine.Contains("black=") Then
    Button2.Hide()
Else
    Return
End If

1 个答案:

答案 0 :(得分:3)

假设输入文件不是很大,您可以将整个文件读成字符串并将black=的所有实例更改为blah blah

        Dim myStreamReaderL1 As System.IO.StreamReader
        Dim myStream As System.IO.StreamWriter

        Dim myStr As String
        myStreamReaderL1 = System.IO.File.OpenText("C:\File.txt")
        myStr = myStreamReaderL1.ReadToEnd()
        myStreamReaderL1.Close()


        myStr = myStr.Replace("black=", "blah blah")
        'Save myStr
        myStream = System.IO.File.CreateText("C:\FileOut.txt")
        myStream.WriteLine(myStr)
        myStream.Close()

编辑:根据 Christian Sauer 的建议,使用ReadAllText稍微提高效率(减少代码)版本。

EDIT2:如果我想提高效率,请优化所有内容。我认为,一条线就足够了。

如果要保存到文件中:

        System.IO.File.WriteAllText("C:\FileOut.txt", System.IO.File.ReadAllText("C:\File.txt").Replace("black=", "blah blah"))

如果您只想存储到以后要使用的字符串中:

        Dim myStr As String = System.IO.File.ReadAllText("C:\File.txt").Replace("black=", "blah blah")