Javaプログラマ(銀) ぬるぽの刑

HR/HMプログレ好きでJavaプラグラマな人がいろいろ書くのと、日々の業務でぬるぽ地獄に遭ってゲンナリするブログ('A`)

奥が深いCSV

CSV形式ってのはなかなか厄介なもんで、ただただカンマでデータが区切ってあるわけじゃないんだそうだ。
Excelで編集する、直にテキストエディタで編集する…いろんな入力方法があると思うんだけどこれが又厄介。
RFC4180てのが実はCSVの基本的な取り決めで日本語訳はここ(とても助かりました)。
一番めんどくさいのが「データ中にダブルクォートがくる場合、""と"が2個連続できます(一文字目はエスケープ文字)。しかし、一文字なら無視するよ」てところか。
これを判別する処理はたぶんデータ中にダブルクォートが2回連続できたら一文字削っちゃうよとかその辺でいいのかと思うんだけど、一文字だけしか入ってなかったら…?
Excelなら消してくれます。これがまためんどくさい。
正規表現だけでなんとかなるのか…?パターン考えるので昨日一日つぶしちゃったからなぁ。

ちなみにPHPではstr_getcsvって名前だったかな?
こんな関数があって、CSV形式のデータ取得をやってくれるらしい。
なんだ俺が悩まなくてもこれ使えばいいじゃん!…PHP5なら…。
そう、実行環境はPHP4なのだ!!!
現実は厳しい!だからこそやりがいがあるってもんだ!(正直胃がキリキリする)