根据起始行值检查文本文件中的特定行字数

时间:2017-06-08 04:19:41

标签: c# .net file

我的文字文件包含以下格式的内容:

0001EPP000000084906875   00000   0001 
0002EPP000000084906875   00016   0002
0003EPP000000084906875       

............


0001EPP000000084967647   00001  0002 
0002EPP000000077676678   00016  0002
0003EPP000000084777770       

我需要循环遍历所有行,找到以0001开头的行,而0002需要获得与计数相同的(0001,0002)相应的行字数,我会做进一步的计算... 为此,我做到了这一点:

string filename = string.Empty;
DirectoryInfo dir = new DirectoryInfo(path);
FileInfo[] TXTFiles = dir.GetFiles("*.txt");
foreach(var file in TXTFiles)
{
    filename = file.Name;
}


var reader = new StreamReader(filename);

foreach(string item in File.ReadAllLines(filename))
{
    // Here I need to check the file content 
}

拜托,有人可以帮忙吗?如果行内容与起始条件匹配,如何识别行内容并获取字数?

1 个答案:

答案 0 :(得分:1)

有些事情你可以改变,可以让你到达你想去的地方。

首先,您可以摆脱StreamReader行,因为File.ReadAllLines是我们获取内容所需的全部内容。

其次,我们应该将处理文件的代码放在foreach (var file ...循环中。否则,我们只处理最后一个文件。

第三,您应该用file.Name(包括完整路径和文件名)替换file.FullName(只是文件名)。否则,除非您正在当前目录中搜索,否则您可能会获得FileNotFoundException

最后,在阅读文件时,我们可以使用StartsWith检查该行是否以您要查找的文字开头,当我们找到我们想要的行时,我们可以使用{{1}将空格字符分解为数组。然后,这只是从线上阅读你关心的部分的问题。

代码看起来像这样:

string.Split

<强>输出

enter image description here