如何以编程方式检测CSV文件中使用的记录/行分隔符。在90%的情况下,它是CR / LF对,但有时它是CR或LF。
还应考虑到引用数据字段中的换行符可能与行/记录分隔符不同。
我该怎么做?
更新:我只对行/记录分隔符感兴趣:CR / LF,CR或LF。
答案 0 :(得分:4)
当您在文本模式下使用iostreams打开文件时,该库将在Linux,Windows或MacOS上处理不同的行结尾。
可以通过计算未转义的引号来检测引用数据字段中的换行符。如果数字是奇数,则可能有未终止的数据字段,因此嵌入了换行符。
当您想知道使用哪个行分隔符时,只需读取字符,直到获得CR或LF。如果它是LF,你就完成了;如果它是CR读取下一个字符。如果下一个字符是LF,那么你的行结尾是CR LF,否则就是CR。