2017-12-03 2 views
0

CSVファイルの構文解析で一貫性のない書式設定がほとんどなく、通常はCSVファイルに伴う通常の規則が破られてしまいました。明確な書式設定スタイルを持たないC++でCSVファイルを解析する方法

私の問題は、CSVパーサを利用したり、自分の問題に固有のパーサを書き込もうとしても、CSVの生データの問題に遭遇するのは、本質的にはカンマで区切られた重要な文字ですコンマで区切られたデータフィールド内に無関係なコンマが多数存在し、データ構造の一貫した構造や形式がなくても、「CSV」を適切に区別する方法を見つけようと苦労していたカンマからの「カンマ」は単にデータフィールド内に保持されます。

私は、他のCSV関連の質問に対する答えにリンクされていたCSVパーサーをいくつか探していましたが、データに一貫性のあるフォーマットが期待されるため、入力されています。役立つ方向で指されているすべての助けや指でさえ、信じられないほど高く評価されます。

+0

私に推測させてください。医療データセット? –

+2

あなたの入力がガベージである場合、従来のCSV解析ライブラリを使用すると、すべての入力が整形式であることが予想されますが、明らかに動作しません。クラップスをキャンディーに変えようとするヒューリスティックなパーサーをロールオーバーする必要があります。 –

+1

あなたは本当にコンマやアポストロフィを嫌うのですか? – Beta

答えて

1

CSV形式では、コンマを含むフィールドを引用符で囲む必要があります。たとえば:

123,"one,two,three" 

これは、これに対処するためのパーサを書くことは難しいことではありませんし、任意の半まともなCSVライブラリは、埋め込まれた二重引用符の問題に対処するとともに、箱から出して、それをサポートする必要があります。最後の2つのコンマが本当に2番目のフィールドの一部であることが意図され

123,one,two,three 

(したがって、本当にCSVではありません):何のライブラリを簡単にサポートすることはできませんどのような

は、このようないくつかの任意のカンマです。独自のパーサーを作成したり、非CSVデータを記述する方法が必要です。

関連する問題