【问题标题】:Replace line in file containing specific string w/ C#用 C# 替换包含特定字符串的文件中的行
【发布时间】:2016-10-05 03:38:06
【问题描述】:

我有一个配置文件,其中每一行都是设置和值的组合。我不知道该值设置为什么,但是我知道设置的名称,我需要在其中更新整行。我发现了许多使用 File.ReadAllText.Replace 和 File.WriteAllText 的示例,但这些示例正在用另一个字符串替换特定字符串。

示例设置行:

Server.ServerType=official

我需要找到包含“Server.ServerType=”的行,在本例中,我将其替换为“Server.ServerType=modded”。

使用 C# 最简单的方法是什么?

【问题讨论】:

标签: c# regex string replace str-replace


【解决方案1】:

在“=”符号上拆分行,然后使用第一个元素进行测试并根据需要更改第二个元素,然后通过替换“=”符号加入。我使用了一个开关,假设您将进行多项测试(比许多 IF/THEN 更容易):

  string line = ReadLine();
  string[] parts = line.Split('=');
  switch(parts[0]){
      case "Server.ServerType":
         parts[1] = "modded";
         break;
         ....
  }
  string newline = String.Join("=",parts);
  WriteLine(newline);

如果您多次更改值,您可以使用:

 Dictionary<string,string> values = new Dictionary<string,string>
 string[] parts = Readline().Split('=');
 values.Add(parts[0],parts[1]);
 values["Server.ServerType"] = "modded";
 ....
 foreach(KeyValuePair<string,string> kvp in values){
    WriteLine(kvp.Key+"="+kvp.Value);
 }

【讨论】:

  • 好极了,我会试一试的。谢谢!
  • 很高兴能提供帮助。干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2020-03-25
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 2019-12-04
  • 2022-11-10
相关资源
最近更新 更多