我对从文本日志文件转换的数组的读取顺序有疑问。
由于在第一行[0]中的过程中我不需要读取文件头,是否有任何方法可以跳过读取行[0]并首先开始读取行[1]?
该程序利用foreach循环读取数组。并且有一种标记方法,因此标记化需要foreach循环来记录数组的String格式。
请通过建议代码帮助我们!谢谢!
程序代码:
class Program
{
static void Main(string[] args)
{
System.Collections.Generic.IEnumerable<String> lines = File.ReadLines("C:\\syscrawl\\ntfs3.txt");
foreach (String r in lines) //Start reading from lines[1] first instead?
{
String[] token = r.Split(',');
}
}
}
如果你需要日志文本文件,这是一个例子:
Date,Size,Type,Mode,UID,GID,Meta,File Name // Lines[0]
Sun Jul 22 2001 02:37:46,73882,...b,r/rrwxrwxrwx,0,0,516-128-3,C:/WINDOWS/Help/digiras.chm // Lines [1]
Sun Jul 22 2001 02:44:18,10483,...b,r/rrwxrwxrwx,0,0,480-128-3,C:/WINDOWS/Help/cyycoins.chm
Sun Jul 22 2001 02:45:32,10743,...b,r/rrwxrwxrwx,0,0,482-128-3,C:/WINDOWS/Help/cyzcoins.chm
Sun Jul 22 2001 04:26:14,174020,...b,r/rrwxrwxrwx,0,0,798-128-3,C:/WINDOWS/system32/spool/drivers/color/kodak_dc.icm
答案 0 :(得分:6)
使用Skip扩展名方法。 E.g。
foreach (String r in lines.Skip(1)) //Start reading from lines[1] first instead
{
String[] token = r.Split(',');
}
如果要检查行而不是依赖计数,可以使用SkipWhile。 E.g。
foreach (String r in lines.SkipWhile(l => l.StartsWith(HeaderInfo))
{
String[] token = r.Split(',');
}
答案 1 :(得分:3)
使用.Skip
:
foreach (String r in lines.Skip(1))