我有一些ini
文件包含此字符串:_DeviceName = #1234
。现在我希望获得_DeviceName
1234
值,但它会显示_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);
}
}
答案 0 :(得分: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);
}
}
答案 1 :(得分: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);
}
}
答案 2 :(得分:0)
我制作了一个实现INI Reader / Writer的应用程序。源代码尚不可用,但继续检查,我将在几天内上传源(今天是2013年8月14日)。这个特殊的INI读卡器是CASE SENSITIVE,可能需要修改特殊字符,但到目前为止我没有遇到任何问题。
答案 3 :(得分:-1)
一种肮脏的方式是使用 String.Replace(" _DeviceName =#","")