IgnoreFirst(int)或IgnoreLast(int)仅忽略固定数量的行作为页眉或页脚。但我喜欢忽略或评论txt / csv文件中的特定行。例如,如下所示(忽略某些段落或txt / csv中的特定行):
############# This is a comment ##########
/* Some comment paragraph
some more comments
last line of comment */
1,Foo,FooItem1
2,Foo,FooItem2
3,Goo,GooItem3
#4,Doo,DooItem4 <-- ignore.
5,Eoo,EooItem5
我已经阅读了有关可能解决此问题的BeforeReadRecord和SkipThisRecord,但文档就像图像一样简单,没有解释也没有提供示例。
答案 0 :(得分:6)
你必须使用这样的东西来注册事件处理程序:
unowned
然后在处理程序中,您可以检查特定条件以跳过记录:
FileHelperEngine engine = new FileHelperEngine(typeof(Orders));
// set the event here
engine.BeforeReadRecord += new BeforeReadRecordHandler(BeforeEvent);
可能只是检查它是否以整数开头,如果不是则跳过。
编辑:你也可以在记录中使用INotifyRead接口,如下所示:
private void BeforeEvent(EngineBase engine, BeforeReadRecordEventArgs e)
{
// skip any bad lines
if (e.RecordLine.StartsWith("#") || e.RecordLine.StartsWith(" "))
e.SkipThisRecord = true;
}