我一直在尝试处理一些具有非标准分隔符(不是逗号/引号或制表符分隔)的分隔文本文件。定界符是不经常出现在定界符之间的随机 ASCII 字符。在四处搜索之后,我似乎只发现 .NET 中没有任何解决方案可以满足我的需求,人们为此编写的自定义库在涉及巨大输入时似乎存在一些缺陷(4GB 文件,其中一些字段值具有很容易有几百万个字符)。
虽然这似乎有点极端,但它实际上是电子文档发现 (EDD) 行业的标准,某些审阅软件具有包含文档全部内容的字段值。作为参考,我之前在 python 中使用 csv 模块完成了这项工作,没有任何问题。
这是一个示例输入:
Field delimiter =
quote character = þ
þFieldName1þþFieldName2þþFieldName3þþFieldName4þ
þValue1þþValue2þþValue3þþSomeVery,Very,Very,Large value(5MB or so)þ
...etc...
编辑:所以我从头开始创建了一个分隔文件解析器。我有点厌倦使用这个解决方案,因为它可能容易出现错误。为这样的任务编写自己的解析器也不会让人觉得“优雅”或正确。我也有一种感觉,我可能不必为此从头开始编写解析器。