2012-11-28 72 views
-1

如何以編程方式檢測CSV文件中使用的記錄/行分隔符。在90%的情況下,它是CR/LF對,但有時它是CR或LF。檢測CSV文件中的記錄/行分隔符

它還應該考慮到引用數據字段中的換行符可能與行/記錄分隔符不同。

我該怎麼做?

更新:我只關心什麼是行/記錄分隔符:CR/LF,CR或LF。

+1

如果您顯示您現有的代碼,我們可以回答更多具體問題。 – TheBlastOne

+1

爲什麼這個標記的c + +和delphi在同一時間? – jachguate

+0

我使用C++ Builder,所以我可以使用C++或Pascal,如果有一個已經存在的解決方案.. –

回答

4

當您在文本模式下使用iostreams打開文件時,該庫將關注Linux,Windows或MacOS上的不同行尾。

可以通過計算未轉義的引號來檢測引用數據字段中的換行。如果數字很奇怪,則可能有未終止的數據字段,因此嵌入了換行符。

當您想知道使用哪一行分隔符時,只需閱讀字符,直到獲得CR或LF。如果是LF,你就完成了;如果它是CR讀下一個字符。如果下一個字符是LF,那麼你的行結尾是CR LF,否則它只是CR。

+0

如果它自動處理它們,我怎麼知道哪一個是實際使用的? –

+0

@riot_starter查看更新後的答案。 –

+0

謝謝,奧拉夫。這似乎是最簡單的方法! –