1

我有一些ini文件包括这个字符串:_DeviceName = #1234。现在我想获得_DeviceNameis1234但它向我显示了完整的字符串 is _DeviceName = #1234。我试过这段代码:

if (File.Exists("inifile.ini"))
{
    if (File.ReadAllText("inifile.ini").Split('\r', '\n').First(st => st.StartsWith("_DeviceName")) != null)
    {
        string s = File.ReadAllText("inifile.ini").Split('\r', '\n').First(st => st.StartsWith("_DeviceName"));

        MessageBox.Show(s);

    }
}
4

4 回答 4

2

您可以改用File.ReadAllLines。如果您正在做任何更复杂的事情,您可能想查看现有的ini文件阅读器,但这应该可以。顺便说一句,这么快打两个File.ReadAllText电话效率不高。在大多数情况下,最好将结果存储在变量中)。

if (File.Exists("inifile.ini"))
{
   string[] allLines = File.ReadAllLines("inifile.ini");
   string deviceLine = allLines.Where(st => st.StartsWith("_DeviceName")).FirstOrDefault();

   if(!String.IsNullOrEmpty(deviceLine))
   {
      string value = deviceLine.Split('=')[1].Trim();
      MessageBox.Show(value);
   }
}
于 2013-08-01T15:11:33.253 回答
2

您可以添加另一个拆分以获取值:

if (File.Exists("inifile.ini"))
{
    if (File.ReadAllText("inifile.ini").Split('\r', '\n').First(st => st.StartsWith("_DeviceName")) != null)
    {
        string s = File.ReadAllText("inifile.ini")
                   .Split('\r', '\n').First(st => st.StartsWith("_DeviceName"))
                   .Split('=')[1];
        MessageBox.Show(s);
    }
}
于 2013-08-01T15:08:30.800 回答
0

我制作了一个实现 INI 读取器/写入器的应用程序。源代码暂时不可用,但请继续查看,我将在几天后上传源代码(今天是 8/14/13)。这个特殊的 INI 阅读器区分大小写,可能需要修改特殊字符,但到目前为止我没有遇到任何问题。

http://sourceforge.net/projects/dungeonchest/

于 2013-08-14T19:50:38.223 回答
-1

一种肮脏的方法是使用String.Replace("_DeviceName = #", "")

于 2013-08-01T15:09:09.083 回答