我有一个大文件,为了简单起见,我只是展示了它的一小部分。数据如下所示:
NPSER NASER NQSER
10 5 3
TSSR MPSER JDNSR
15 10 6
我需要做的是找到例如NPSER和NASER,然后将值NPSER分配为10,将NASER分配为5,将NQSER分配为3.对于这个小数据集,我可以执行以下操作:
TextReader infile = new StreamReader(fileName);
string line;
int NPSER, NASER, NQSER;
line = infile.ReadLine();
string[] words = line.Split('\t');
NPSER = Convert.ToInt32(words[0]);
NASER = Convert.ToInt32(words[1]);
NQSER = Convert.ToInt32(words[2]);
infile.Close();
我没有读取每一行并分配值,而是想写一个函数,当我在一行中搜索三个单词时,它会自动获取行,这对于更长的应用程序来说更容易和有效。
我也很欣赏其他方法。
答案 0 :(得分:1)
如果你可以使用LINQ:
会更容易var line = File.ReadLines("path")
.SkipWhile(line => !line.Contains("NPSER")) // change this condition to suit your needs
.Skip(1)
.First();
var values = line.Split(new[] { ' '},StringSplitOptions.RemoveEmptyEntries)
.Select(int.Parse)
.ToArray();
int NPSER = values[0];
int NASER = values[1];
int NQSER = values[2];