Vb.net 读取文件,搜索文本并替换所有行
我有一个TXT文件,其中包含一些要替换的值。例如: "FirtsColor" "176 174 145 255" "SecondColor" "204 204 145 255" "ThirdColor" "164 240 115 255" 我想要什么Vb.net 读取文件,搜索文本并替换所有行,vb.net,visual-studio-2010,text,replace,Vb.net,Visual Studio 2010,Text,Replace,我有一个TXT文件,其中包含一些要替换的值。例如: "FirtsColor" "176 174 145 255" "SecondColor" "204 204 145 255" "ThirdColor" "164 240 115 255" 我想要什么 搜索整个文件中的文本(本例中为“SecondColor”) 删除所有行(“SecondColor”204 145 255) 使用新的RGBA值(“SecondColor”255 110 195 255)再次
- 搜索整个文件中的文本(本例中为“SecondColor”)
- 删除所有行(“SecondColor”204 145 255)
- 使用新的RGBA值(“SecondColor”255 110 195 255)再次写入相同的单词
- 在整个文件中搜索文本(“SecondColor”)
- 替换文本并添加新值(“SecondColor”255 110 195 255“204 204 145 255”)
- 这类4000行的内存问题还不够大,因此您可以在内存中读取所有行,然后执行循环来搜索数据,用指定的值替换整行并将其写回磁盘
Sub Main
Dim lines = File.ReadAllLines("D:\temp\testcolor.txt")
for x = 0 to lines.Count() - 1
if lines(x).Trim().StartsWith(Chr(34) & "SecondColor" & Chr(34)) Then
lines(x) = string.Format("{0,-20}{1}", _
Chr(34) & "SecondColor" & Chr(34), _
Chr(34) & "255.255.255.255" & Chr(34))
End if
Next
File.WriteAllLines("D:\temp\testcolor.txt", lines)
End Sub
将数据拆分为单独的行,这样就可以很容易地用输入替换整行了,您的问题是什么?不清楚您在寻找什么。此文件中有多少行?@Steve超过4000行,但我只需要编辑一个9。添加了一点改进,以强制第一列(颜色列)中的文本宽度为20个字符
Private Sub Button1_Click() Handles Button1.Click
If Not File = Nothing Then
Dim filePath As String = File
Dim reader As New IO.StreamReader(filePath)
Dim contents As String = reader.ReadToEnd()
reader.Close()
contents = contents.Replace(Chr(34) & "SecondColor" & Chr(34), Chr(34) & "SecondColor" & Chr(34) & " " & Chr(34) & "255 110 195 255" & Chr(34))
Dim writer As New IO.StreamWriter(filePath)
writer.WriteLine(contents)
writer.Close()
End If
End Sub
Sub Main
Dim lines = File.ReadAllLines("D:\temp\testcolor.txt")
for x = 0 to lines.Count() - 1
if lines(x).Trim().StartsWith(Chr(34) & "SecondColor" & Chr(34)) Then
lines(x) = string.Format("{0,-20}{1}", _
Chr(34) & "SecondColor" & Chr(34), _
Chr(34) & "255.255.255.255" & Chr(34))
End if
Next
File.WriteAllLines("D:\temp\testcolor.txt", lines)
End Sub