检测CSV文件中的记录/行分隔符

时间:2012-11-28 10:27:52

标签: c++ delphi csv

如何以编程方式检测CSV文件中使用的记录/行分隔符。在90%的情况下,它是CR / LF对,但有时它是CR或LF。

还应考虑到引用数据字段中的换行符可能与行/记录分隔符不同。

我该怎么做?

更新:我只对行/记录分隔符感兴趣:CR / LF,CR或LF。

1 个答案:

答案 0 :(得分:4)

当您在文本模式下使用iostreams打开文件时,该库将在Linux,Windows或MacOS上处理不同的行结尾。

可以通过计算未转义的引号来检测引用数据字段中的换行符。如果数字是奇数,则可能有未终止的数据字段,因此嵌入了换行符。

当您想知道使用哪个行分隔符时,只需读取字符,直到获得CR或LF。如果它是LF,你就完成了;如果它是CR读取下一个字符。如果下一个字符是LF,那么你的行结尾是CR LF,否则就是CR。