現在、私は INI ファイルの読み書きを簡単にするライブラリを作成しています。キーと値が存在しないときにリーダーが動作し、書き込みを行っていますが、値を簡単に更新することはできません。文字列を置き換えるさまざまな方法を試しました。ただし、どれも実用的ではなく、プログラムは古い値を必要とします
ここから試した例を次に示します。テキストファイルの不明な値を置き換える正規表現-c#および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)
{
}
}