任何人都知道如何以类似于NET FileHelpers的方式导入/导出csv,txt文件,但是使用Delphi,将空格和引号考虑在内并以类似于CSV转义在Excel中的方式处理传统的CSV转义规则?
REF.链接http://www.filehelpers.com/
如果你的答案往往是:“为什么这个懒惰的人不会写一个简单的CSV解析器”,考虑这个5分钟的阅读,然后你会知道为什么CSV解析不是微不足道的:
解决方法
我写了一个名为TJvCsvDataSet的Jedi项目的数据集(TTable类似对象),遵循所有CSV解析规则,其方式与Excel使用的CSV解析规则以及导入和导出CSV的各种数据库和报表工具类似.
您可以安装JVCL,在表单上放置一个TJvCsvDataSet.
它还包含一个流类,它将非常快速地加载磁盘上的文件,并使用CSV文件所需的正确的转义规则逐行解析它,甚至包含字段中编码的回车/换行符代码的文件.
您只需将其放在窗体上,并设置FieldDefs属性,如下所示:
CsvFieldDef = ABC:%,DEF:#,GHI:$….
有整数,浮点,异时日期等字段的特殊代码.它甚至允许您将宽字符串字段映射到CSV文件中的utf8字段.
有一个designtime属性编辑器来保存你不必使用上面的语法来声明CSV字段定义,而是可以直观地选择列类型.
如果您没有设置CSV字段Def,则只将文件中存在的任何内容映射到字符串类型字段.
绝地JVCL:
http://jvcl.delphi-jedi.org/
JvCsvDataSet文件: