【问题标题】:Reading csv file with newlines inside strings fails使用字符串中的换行符读取 csv 文件失败
【发布时间】:2018-01-13 08:37:42
【问题描述】:

我正在尝试使用 FileHelpers 库读取 csv 文件。

有问题的一行如下所示:

4159948;1;31;2018-01-03 11:11:25.0;"Feil funnet på skiltbelysning mot Ryggevn. Isolasjonsresistansen etter frakobling: 1,2Mohm";2018-01-03 11:11:25.0;MOSS ELEKTRO AS;MOSS ELEKTRO AS;1;824;251812;MOSS ELEKTRO AS;" MOSS ELEKTRO AS"

所以有一个字段里面有一个换行符,但它看起来很合适,因为文件在两边都添加了 " 内的文本。

但是,在读取文件时出现以下错误:

行:2 列:35。分隔符 ';'字段后未找到 'k__BackingField'(记录的字段较少, 分隔符错误或下一个字段必须标记为可选)。

所以它不理解换行符。

有没有办法让它与 FileHelpers 一起工作?如果没有,我可以使用其他任何库来正确处理这个问题吗?

【问题讨论】:

  • 您没有为此使用事件RecordLine,是吗? There is an open bug about it.
  • 我不是,但你为我指明了正确的方向。我在代表用“引用的数据”的字段上缺少[FieldQuoted('"')]。非常感谢:)
  • 请用包含解释和解决方案的完整答案回答您自己的问题,并标记为已接受。这将对其他用户和未来的读者有所帮助!

标签: c# csv parsing filehelpers


【解决方案1】:

问题在于,在我将文件映射到的类中,要映射到包含多行字段的列的属性必须具有属性 [FieldQuoted('"')] 才能理解该字段可以用“ . 添加此属性时,解析工作正常。

【讨论】:

    猜你喜欢
    • 2012-07-06
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多