0

我想扫描我的文件以查找包含特定字符串“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
4

1 回答 1

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")
于 2013-03-22T15:11:33.773 回答