著作一覧 |
異様なまでに項目が多い変換表がExcelで作成されている。
あまりにも項目が多い上に頻繁に修正が入るから、人間がプログラムを作成するのはバカっぽい感じだ。そこで、表から変換プログラムを作成するプログラムを作成することにする。
VBAは良くわからないので(調べる気にもならない。と思ったがVBもVBSも知っているんだから、真の理由は後で出てくる)とりあえずcsvに変換したファイルを処理すれば良いだろうと、rubyでJavaの変換プログラムを出力するプログラムを書き始める。これなら、Win32上ではなくてUnixでも動かせるだろう。
ところが、Excelの元データにセル内で改行している項目が幾つもあった。面倒なので(各項目ごとに"で始まり改行していれば次の行まで読み込んでとかすればできるわけだが)直接Excel側を直し始めたが、あまりにも膨大なのでやめた。
で、Win32OLE。これならセル毎に取り出せるから改行があっても平気だ。この時点でWin32限定決定。でもrubyで書く方針は変わらない。
で、なぜ変換プログラムの対象言語のJavaや、ExcelネイティブなVBAじゃないかと言うと、ヒアドキュメントを使いたいというのが1番大きかったりして。
そこで、C#だ。@""だっけな? あれはやはり良い点をついている。しかし、さすがにこのためにC#を持ち出すのは後々を考えると無理があるので、やはりrubyで行くことにする。
#というか、Excelの表を作っているやつが、改行もそうだが機械読み取りとか機械加工ということに対するセンス(というか考慮というか)がゼロなので、とてつもない労力が必要でうんざりする。これからは、表を作ったやつにプログラムを作成するプログラムの作成を義務付けることを考えてみる。TDDみたいなものだ。機械処理するために最適な表の作成方法を考えて表を作成する。
#メタな作業はおもしろい。
ジェズイットを見習え |
csv.rbは改行入りのセルも扱えるはずですが。
がーん、存在自体を知りませんでした。それは残念。とはいえ、CSV作るたびにExcelが「未サポート」に関するダイアログを都合3回出してきてうるさくてイヤだったから、まあいいかな。
csvじゃないだろ>8:54のオレ
csv.rbは改行入りも大丈夫ですね。使っています。
>Excelの表を作ってるやつがセンスゼロ<br>涙が出るほど、激しく同意。っつうか、泣いてて<br>日記更新する暇も無いし<br>自動集計とか加工しないんだったら、Excel使う意義ないだろ
>日記更新する暇も無いし<br>を読んで、こっちもネズミのカマンベールと全然遊べていないことに気づきました。(iBook上での動作が変というのもあったんだけど遊べる頃には直っているかな?)
あいたたた>カマンベール<br>A300の zau-squeakが動かなくて、こちらも触れてませぬ<br>せっかく、Squeakerな方から反応あったというのに
まいど呼ばれてないのに飛び出る Squeak 方面です(^_^;)。iBook ではどんな不都合がありましたか? あと、A300 はリナザウでしたっけ? 基本的に C700 以前はメモリがタイトなので使用する仮想イメージを小さなもの(ニアリーイコール、古いもの)にするとか、VM 割り当てメモリを増やしてやるとか工夫がいるようなので、それかもしれません。ハズしていたらごめんなさい。
起動直後は画面下のほうに出てくるタスクバーみたいなものに、Squakeの下のほうが重なってしまってサイズを変えなければならない(子供には面倒らしいというか、大人にも面倒です。とは言え、ナビゲータで全画面に飛び出させれば良いのですが)というのが1点と、部品パレットの2段目(辛うじて乱数だけは上が覗いている)が見えない点―うまくマウスを持っていくとバルーンヘルプが出てどうにかわかる―です。2点目は、ナビゲータで「全画面に飛び出す」を選択しても隠れたままなのでちょっと悲しい。いずれもあまり本質的な問題ではありませんが、使い勝手の問題なのでちょっと出鼻をくじかれたという感じはしました。
タブの開き具合はタブ部分をドラッグすることで変更可能です。ウインドウサイズやフラップの開き具合を使いやすいように調整したら、esc キーを押して“隠しメニュー”を呼び出して「保存」を選びます。これで次回起動時からも“現在”、つまり保存直前の状態が反映されるようになります。お試しください。
どうもありがとうございます。やってみます。