CSVファイル読み込み、書き込み時の一般的な方法
いつもお世話になります。
下記CSVデータの場合の分割された結果を示していますが、データを分割する際、一般的には、
どのような考え方で分割するロジックを組めばよいでしょうか。
CSVファイル読み込み、書き込み時におけるルール。
(間違っている、漏れているなどありましたらご指摘頂ければと思います。)
・ダブルコーテーションで括る必要のあるデータ
以下のデータを含むデータ。
区切り文字、改行、ダブルコーテーション
・ダブルコーテーションが入るデータは、ダブルコーテーションでエスケープする
aa"bb ⇒ aa""bb
上記ルールに則ったCSVファイルの読み込み方。
123,aaaaa,ああいい,"13,55","aa""bb","ab(改行)ZZ","ああ"",いい"
↓
データ1 123
データ2 aaaaa
データ3 ああいい
データ4 13,55
データ5 aa"bb
データ6 ab(改行)ZZ
データ7 ああ",いい
上記結果になるようにデータを分割すればいいのですが、データにダブルコーテーションがある
場合、書き込み時に付与、読み込み時に削除、という具合にデータの編集処理が入ってしまうが
いいのか、何かのミスで、ダブルコーテーションがエスケープされておらず、カンマと連続で
定義されていた場合「",」、データの終わりを示してしまい、意図しない個所で分割されてしまうの
ではないか、何かのミスでダブルコーテーションの始め、もしくは終わりの定義が漏れいた場合
(「・・・,"aaaa,・・・」「・・・,aaaa",・・・」など)、これも意図しない個所で分割されてしまう、
などなど、一般的にはどのようなロジックにしておけばよいのでしょうか。
そもそもロジックで全てを防ぐ事はできない、ということでしたら、事前にこれだけは決めておくべき、
というポイントがありましたら、教えて頂けると嬉しいです。
世の中には、CSVファイルを分割するためのライブラリなどが公開されていますが、
外部のライブラリを使用してはいけないプロジェクトの場合など、自分で自作する必要があります。
その際の一般的な考え方、注意点などを踏まえて作ることができれば、無用なバグを含ませる
ことができずにすむので、皆様の考えを教えて頂きたいと思い、質問した次第です。
宜しくお願いします。
お礼
回答ありがとうございます。 私が理解しておらず、すみません…。やってみます。