『敗北と死に至る道が生活』その4113
CSVファイルってのがある。エクセルで開く事が多いのだが特定アプリケーションに依存しないテキスト形式のファイルだ。特定アプリケーションに依存すると、それを持っていない人は見る事が出来ないので使ってはいけない。の、割にはPDFはよく使われている。Flashも含めてadobeは嫌いだ。CSVファイルは仕様が決まっているようで決まっていない気がする。便利なので昔っから世界中で使われている。要するにカンマ区切りで項目を並べて表形式を再現させるデータファイルなのだが、じゃあ項目自体にカンマを含む場合はどうする?項目の起点と終点に二重引用符をつけよう。じゃぁ項目自体に二重引用符があったらどうする。データとしての二重引用符にはエスケープ文字をつけよう。じゃぁ改行コードを含む場合は?となるので、ローカルルールがある。半角カンマは使わないとか。勝手仕様だ。
ちなみに項目自体にカンマがあろうが、二重引用符があろうが改行があろうが、お金がなかろうがきちんと動くのが正しいCSVの扱いだ。改行があるとメモ帳で開いたら1行が2行になっているとギャーギャー言うバカがいるが、メモ帳が勝手にそう表示しているだけの話であって、エクセルで開けばセル内改行かもしれない。どんなテキスト形式のファイルだって改行コードがちりばめられた連続のバイナリファイルだ。
企業同士のEDIなんかも勝手仕様で動いている。でもエクセルにしたって、マイクロソフトの勝手仕様なのでバージョンによって動かないことがある。結構IT業界も曖昧な世界だ。PGやSEは、ヨチヨチ歩きの赤ん坊に手を貸す仕事だと思っている。
こんなに書いてきてなんだが、今日書きたかったのはそんなことではない。VBAでCSVファイルを RDB とみなし、SQLが発行出来ることを知った。なんだその3文字3文字3文字3文字は。複数ファイルあれば項目で外部結合し、集計関数まで使える。いままでAccessのテーブルやExcelのシートに入れたりしていた。CSVのままいけるならそれが一番いい。「いったん置いといて」みたいなジェスチャーゲームは要らない。でもお高いんでしょう?じゃなくて遅いんでしょう?と思っていたらそこそこ速い。RDBの中身なんて結構こんな感じで動いているのかもしれない。
今日読みたかったのは、きっとこんな話ではないだろう。白湯でも飲んで寝たまえ。