基于行长度或固定宽度文件中的第一个字符忽略行 - 文件助手 - C#
问题描述:
我有一个固定宽度的文本文件,我通过FileHelpers
库读取它。现在,我忽略了使用此语法基于行长度或固定宽度文件中的第一个字符忽略行 - 文件助手 - C#
[IgnoreFirst(2)]
[IgnoreLast(3)]
前两行和最后三行但我想忽略其长度的行或列是否为空,或者如果第一个字母是A或T. 我发现我可以使用语法[SkipThisRecord]
,但不知道如何使用它。
答
您需要IgnoreEmptyLines
属性和ConditionalRecord
属性。
[DelimitedRecord(",")]
[IgnoreEmptyLines()]
[ConditionalRecord(RecordCondition.ExcludeIfBegins, "A")]
public class ConditionalType1
{
/// etc.
}
有用于RecordCondition
如ExcludeIfMatchRegex
几个选项。请参阅docs。
当我添加两个'条件记录',一个用于A和一个用于T,它说重复'条件记录'属性 –
您可以使用正则表达式来处理这种情况,或者更好地添加一个接口到你的类:INotifyRead和OnBeforeReadRecord方法中,你可以用任何你想要的条件 – MarcosMeli