プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります。

下記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ファイルを分割するためのライブラリなどが公開されていますが、
外部のライブラリを使用してはいけないプロジェクトの場合など、自分で自作する必要があります。
その際の一般的な考え方、注意点などを踏まえて作ることができれば、無用なバグを含ませる
ことができずにすむので、皆様の考えを教えて頂きたいと思い、質問した次第です。

宜しくお願いします。

A 回答 (2件)

それで問題はない。


逆に聞きたい。
余計なダブルコーテーションが入った時(またはダブルコーテーションが不足した時)どうしたいのか?
データを解析して、余計なダブルコーテーションを自動削除(または不足するダブルコーテーションを自動追加)して読み込めるようにしたいのか?
普通はそこまでの面倒は見ません。
単純にデータエラーにします。(またはデータがずれたまま読みこまれる)

CSVファイルなので、改行位置で分割したほうが都合が良いと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

> 普通はそこまでの面倒は見ません。
> 単純にデータエラーにします。(またはデータがずれたまま読みこまれる)

考えすぎということですね。ありがとうございます。

> CSVファイルなので、改行位置で分割したほうが都合が良いと思います。

これはどういう意味なのでしょうか?
改行コードが入っていても、ダブルコーテーションが入っている場合は一つのデータとみなすという
認識でいるのですが、改行部分で問答無用で次のレコードにした方がよい、とおっしゃっているのでしょうか?

お礼日時:2012/03/22 23:16

CSVファイルの大前提として、データは行単位になっているということです。


ファイルを分割するときに、データの行単位で分割したほうが良いということです。
単純に文字数だけ見て、行の途中で分割したら、分割されたファイルをテキストエディタで見たときにわかりにくくなる。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!