sdd*_*dds 3 c# csv filehelpers
我手头有一个应用程序,它使用 FileHelpers 库来处理 csv 文件。
过去,输入的 csv 文件总是具有相同的结构,一个记录有 5 个逗号分隔的字段,然后是一个新行来分隔记录。
然而,最近我开始接收每行超过 5 条记录的 csv 文件,显然,当前用于 csv 解析的类不适用于这些行。问题是,我仍然只需要前五个字段,它们仍然以相同的顺序提供。
有没有办法用 FileHelpers 读取前五个字段,并忽略任何其他数据直到换行?
当前用于解析的类:
[IgnoreEmptyLines()]
[DelimitedRecord(";")]
public sealed class SemicolonsRow
{
[FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
public String LastName;
[FieldOptional()]
[FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
public String Name;
[FieldOptional()]
[FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
public String MidName;
[FieldOptional()]
[FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
public String BirthDate;
[FieldOptional()]
[FieldQuoted('"', QuoteMode.OptionalForRead, MultilineMode.AllowForRead)]
public String BirthPlace;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
使用 FileHelper,您可以将此变量添加为最后一个:
public string[] FunkyNewField;
Run Code Online (Sandbox Code Playgroud)
如果您定义了 FieldOrder,则像这样添加它:
[FieldOrder(n)]
public string[] FunkyNewField;
Run Code Online (Sandbox Code Playgroud)
其中 n = 您最后指定的订单号之后的数字。
这将包含文件中您不想使用的所有额外列。