【问题标题】:Ignore rows based on Row Length or first character in Fixed Width file - File Helpers - C#基于行长度或固定宽度文件中的第一个字符忽略行 - 文件帮助器 - C#
【发布时间】:2017-03-10 15:19:42
【问题描述】:

我有一个固定宽度的文本文件,我正在通过FileHelpers 库读取它。现在我使用这种语法忽略前两行和后三行

[IgnoreFirst(2)]
[IgnoreLast(3)]

但是我想忽略行的长度,或者行是否为空,或者第一个字母是 A 还是 T。 我发现我可以使用语法[SkipThisRecord],但不知道如何使用。

【问题讨论】:

    标签: c# text-files skip filehelpers fixed-width


    【解决方案1】:

    您需要IgnoreEmptyLines 属性和ConditionalRecord 属性。

        [DelimitedRecord(",")]
        [IgnoreEmptyLines()]
        [ConditionalRecord(RecordCondition.ExcludeIfBegins, "A")] 
        public class ConditionalType1 
        { 
           /// etc.
        }
    

    RecordCondition 有多个选项,例如ExcludeIfMatchRegex。请参阅docs

    【讨论】:

    • 当我添加两个Conditional Record,一个用于A,一个用于T时,它给了我错误,它说重复'条件记录'属性
    • 对于这种情况,您可以使用正则表达式,或者更好地为您的类添加一个接口:INotifyRead 并在 OnBeforeReadRecord 方法中,您可以使用任何您想要的条件对当前行进行 Skype 访问
    猜你喜欢
    • 2023-04-07
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    相关资源
    最近更新 更多