目前我正在编写一个库来简化INI文件的读写,当键和值不存在但我无法轻松更新值时,我已经让阅读器工作和写入,我尝试了各种方法来替换字符串但是没有一个是实用的,程序需要旧值
这是我从这里尝试过的一个示例:Regular Expression to replace unknown value in text file - c# and asp.net
Regex rgx = new Regex(@"SQL-SERVER-VERSION="".*?""");
string result = rgx.Replace(input, replacement);
但是每次我修改该代码以替换值时,它最终都会替换键,从而导致应用程序下次尝试读取文件时出错。
这是我目前使用的代码:
private string wholedata;
private void UpdateKey(string key, string path, string newval)
{
try
{
using (StreamReader s = new StreamReader(File.Open(path, FileMode.Open)))
{
wholedata = s.ReadToEnd();
Regex rgx = new Regex(key + ".*?");
string result = rgx.Replace(wholedata, newval);
MessageBox.Show(result);
}
using (StreamWriter s = new StreamWriter(File.Open(path, FileMode.OpenOrCreate)))
{
s.Write(wholedata);
}
}
catch (Exception e)
{
}
}