0

CSVファイルで使用されているレコード/行区切り文字をプログラムで検出するにはどうすればよいですか。90%の場合、それはCR / LFペアですが、CRまたはLFのいずれかである場合もあります。

引用符で囲まれたデータフィールドの改行は、行/レコードの区切り文字とは異なる場合があることも考慮に入れる必要があります。

どうやってやるの?

更新:行/レコード区切り文字(CR / LF、CR、またはLF)のみに関心があります。

4

1 に答える 1

5

iostream を含むファイルをテキスト モードで開くと、ライブラリは Linux、Windows、または MacOS のいずれかで異なる行末を処理します。

引用されたデータ フィールドの改行は、エスケープされていない引用符をカウントすることで検出できました。数値が奇数の場合は、データ フィールドが終了していないため、改行が埋め込まれている可能性があります。

どの行セパレーターが使用されているか知りたい場合は、CR または LF のいずれかが得られるまで、文字単位で読んでください。LF の場合は完了です。CR の場合は、次の文字を読み取ります。次の文字が LF の場合、行末は CR LF であり、それ以外の場合は単なる CR です。

于 2012-11-28T10:33:52.307 に答える