使用';从ini文件中读取值;文件.ReadAllText';
本文关键字:文件 读取 ReadAllText ini 使用 | 更新日期: 2023-09-27 18:25:59
我有一些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);
}
}
您可以改用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);
}
}
您可以添加另一个拆分来获得值:
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);
}
}
我制作了一个实现INI读写器的应用程序。源代码还不可用,但请继续查看,我会在几天后上传源代码(今天是8/14/13)。这个特殊的INI阅读器是区分大小写的,可能需要对特殊字符进行修改,但到目前为止我没有遇到任何问题。
http://sourceforge.net/projects/dungeonchest/
一种肮脏的方法是使用String.Replace("_DeviceName=#",")