我有一个 .EDF(文本)文件。该文件的内容如下:
ConfigFile.Sample, Software v0.32, CP Version 0.32
[123_Float][2]
[127_Number][0]
[039_Code][70]
我想阅读这些项目并像这样解析它们:
123_Float - 2
127_Number - 0
039_Code - 70
我如何使用 C# 来做到这一点?
好吧,你可以从File.ReadAllLines() http://msdn.microsoft.com/en-us/library/system.io.file.readalllines.aspx方法。然后,迭代该文件中的行,检查它们是否与模式匹配。如果他们这样做,提取必要的文本并用它做任何你想做的事。
这是一个示例,假设您想要以下格式的行[(field 1)][(field 2)]
:
// Or wherever your file is located
string path = @"C:\MyFile.edf";
// Pattern to check each line
Regex pattern = new Regex(@"\[([^\]]*?)\]");
// Read in lines
string[] lines = File.ReadAllLines(path);
// Iterate through lines
foreach (string line in lines)
{
// Check if line matches your format here
var matches = pattern.Matches(line);
if (matches.Count == 2)
{
string value1 = matches[0].Groups[1].Value;
string value2 = matches[1].Groups[1].Value;
Console.WriteLine(string.Format("{0} - {1}", value1, value2));
}
}
这会将它们输出到控制台窗口,但显然你可以做任何你想做的事情value1
and value2
(将它们写入另一个文件,将它们存储在数据结构中,等等)。
另外,请注意,正则表达式不是我的强项——可能有一种更优雅的方法来检查一行是否与您的模式匹配:)
如果您想了解更多信息,请查看 MSDN 的文章从文本文件读取数据 http://msdn.microsoft.com/en-us/library/ezwyzy7b.aspx作为起点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)