CSVライブラリを日本語プログラミング言語Mindで書き始めてみたのですが、どうも全体のツクリとか、結果のインターフェースが気に入らないので検討中だったりします。
ヒントを求めて、Mindの書籍(20年もの!)を見ていたら、サンプルプログラムのところにCSVを切り出すライブラリ風のソースが出ていましたorz あ゛ー
そのソースを見ていると文字列実体変数はまったく使ってなくて、文字列変数で「分断」とかしているんですよね。文字列変数はポインターとレングスしか持ってないということだったので、すっかりJavaに洗脳された私としてはimmutableなオブジェクトであるという意識でした。違うんですね。
たとえば「削除」っていう文字列処理単語があるんですけど、その説明で実際に削除されるわけではなくてポインターがズレるんです、ということが書いてありました。たぶん分断も元文字列の方はポインターがズレてレングスが減少するのでしょう。結果はスタックに積まれますが。
文字列変数と文字列実体変数の理解がいまだダメだということがわかりした。精進せねば..w
いろいろとソースをいじっていくので、そろそろバージョン管理ソフトに載せないとツラくなってきたのです。(怠惰な環境に慣れると戻れないですなぁ)
バージョン管理ソフトに載せるとdiffも取れるし…eclipseとか経由にすると慣れたeclipseのエディターとかでエディットできるし。ただ、eclipse上でMindのコンパイル→実行は無理なので、そこはプロントを横で開いて実行することにします。
ご自宅用にWindowsマシンにRational Team Concert v3 iFix1のサーバーw(古!)があるのでそこに格納することにしました。特に目新しいことはなくて、RTC Client mac版からRTCサーバーへ接続してjazz管理パースペクティブから新規プロジェクトを作りました。eclipseのエディターのエンコードデフォルトをeucにしただけ。
Mindはコンパイルするとシンボルファイル(.sym)とかコンパイル結果ファイル(.inf)とかいろんなファイルをソースと同じディレクトリに吐くので、それはリポジトリへインポートしたあとに管理対象から外しました。
これで、バージョン管理とチケット管理できる環境が整いました。「こんな改良するぞ」ってワークアイテム(tracのチケットみたいなの)を切って、修正した部分と関連づけ管理とかできて便利そう。
と、環境オタに陥りそうになりつつ….改良していきたいと思います。
CSVライブラリが形になったら、超簡単正規表現ライブラリとかも作ってみたいなぁ。できたら普段使いのちょっとしたツールづくりの環境として使えそうだし。ただmacだとMindはEUCなのがちょっとアレですけど。macのデフォルトはUTF-8なんですよね。最近のLinuxとかもUTF-8ですけど。
コメント