jeyseni's diary

「ジェイセニ」と呼んでください。批判ではなく提案をするのが生き甲斐です。

MBSでファイルメーカー上でローカルのテキストファイルを読み込み・書き込み--困ったときのMBS

「MBS」というファイルメーカープラグインがとんでもなく多機能な件 - jeyseni's diary (hatenablog.com)(20021/5/20)以来,QRコード正規表現,メール送受信などを実現してきたことを報告している。今回は,ファイルメーカー上にローカルのテキストファイルを読み込み,これを修正後,元のテキストファイルに上書き保存する,という機能を使うことになった。

 これを使う目的は,htmlファイルの編集である。とりあえずローカルで編集したhtmlファイルは,ファイルメーカーのWebビューア機能でファイルメーカー上で表示できる。しかし,このhtmlファイルを修正しようとすると,ローカルのフォルダをウインドウで開き,当該htmlファイルを見つけてテキストファイルで開いて編集する,という作業が生じる。修正後,htmlファイルの表示が直っているかどうかの確認のために,またWebブラウザーで開かなければならない。

 せっかく,ファイルメーカー上でWebビューアがあるのだから,同じレイアウト上でhtmlファイルを編集し,更新したファイルをWebビューアで表示させるのが格好いいと思ったのである。また,htmlファイル名が必ずしも順番になっていないことも多く,それならファイルメーカーのレコード単位で自動的にhtmlファイルを選択して読み込めるようにすれば,いちいちウインドウ上で探すこともない。数ファイル程度ならウインドウで開くのも苦にならないが,これが100ファイルも200ファイルもあるとなると,話は別である。

 Text.ReadTextFileというスクリプト関数でテキストファイルをフィールドに読み込み,そこで修正した後,Text.WriteTextFileというスクリプト関数で元のテキストファイルを上書きする。その後,Webブラウザーで読み込み直して,htmlファイルの修正を確認できる。これが,ファイルメーカーの同じレイアウト上でできるのだから,最高である。

 ファイルメーカーのネイティブで外部テキストファイルを操作できるのはVer.16以降らしいが,どうも説明を見る限り,使い勝手は悪そうに思えた。このMBSによるテキスト読み込み,書き出しは,ファイル単位で処理できるので,直感的だと思えた。

 何しろ,ファイルメーカーでネイティブにテキストファイルをエクスポートすると,なぜかファイルエンコードがUSB-16になってしまい,文字化けが発生する可能性が高い。しかし,Text.WriteTextFile関数では,UTS-8などのエンコードを指定でき,文字化けの心配がないというのも,すばらしい。

 「こんなことができるといいな」と思ってインターネット検索を掛けると,ほぼソリューションが見つかる。念のためMBSを調べてみると,意外なソリューションが見つかることが多い。それほど,MBSは気の利いた機能が提供されている。まあ,時にはMacオンリーとか制限もあるが,本当に役立っている。

 まだまだ他にもいろいろな機能があり,解明しきれていないが,もう少し,ファイルメーカー12 Advancedで使い続けたいと思う。