我想扫描我的文件中包含特定字符串“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
答案 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")