我有一个TXT文件,其中包含一些我要替换的值。例如:
"FirtsColor" "176 174 145 255" "SecondColor" "204 204 145 255" "ThirdColor" "164 240 115 255"
使用我的代码,我可以替换文本并添加新值,但仍然使用旧值。
"FirtsColor" "176 174 145 255" "SecondColor" "255 110 195 255" "204 204 145 255" "ThirdColor" "164 240 115 255"
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
我想要什么?
我目前的代码获得了什么?
答案 0 :(得分:0)
这类4000行不是一个足够大的内存问题,因此您可以在内存中读取所有这些内容并执行循环来搜索数据,用所需的值替换整行并将其写回磁盘< / p>
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
File.ReadLines将您的数据拆分为单独的行,因此很容易用输入替换整行