前の項目  次の項目
秀丸の情報ツール化マクロ

秀丸の情報ツール化
秀丸は文書を情報として管理するエディタですが、同時にちょっとした文字情報を管理したい場合も少なくありません。今月からは「文字列登録マクロ」を作っていく予定です。  あれっ。なんだか、マジメな内容がずらり。サブルーチン周辺の秀丸マクロの知識がギッシリですね(^^) そうですよね。どーしてもマジメなワ・タ・シのセーカクは隠せなかったのでした(^^;ゞ

iniファイルの活用
●文字列の管理
 秀丸で文字列を管理するためには、INIファイルでデータ管理する方法とレジストリで管理する2つの方法があります。一般にソフトウェアの外からレジストリファイルを操作するのは危険を伴いますので、今回は、INIファイルを使います。INIファイルは、セクション名、キー名、情報(文字列や数値)の単純な構造をしたテキストファイルですから扱いが安全で簡単だというメリットがあります。さらに、マクロからINIファイル系のマクロ文を使う以外にも、INIファイルそのものを文書ファイルとして扱い、大量で高速な処理を行うことも可能です。

●INIファイル系マクロ文の応用
 INIファイル系のマクロ文は、秀丸の状態を覚えておいたり、特定の状態を再現させるなどのが本来の目的です。たとえば秀丸の終了時のファイル名を記憶するとか、常時使う複数のファイル名を記憶させておき、一気にそれらのファイルを開くなどの際に利用されます。

 しかし一方では、ちょっとした情報を記憶するのに適した性格をもつマクロ文でもあります。たとえば文字列の記憶。ある仕事をしていて、特定の文字列をたびたび検索したり、文書中に挿入したりすることは頻繁に発生します。秀丸の検索ダイアログボックスは検索ヒストリーに10個保存しますが、不足するケースも少なくないでしょう。そこで今回、検索文字列を数百個くらいは記憶し簡単な操作で再検索したり、記憶した文字列を挿入したりできるマクロを考えることにします。

●INI情報の書き込みと読み込み
 INIファイルへのデータの書き込みには次の2つのマクロ文を使い ます。

	writeinistr
	writeininum 
 これらは4つのパラメータを持ちます。writeinistr文は「INIファイル名, セクション名, キー名, 文字列」、writeininum文は「INIファイル名, セクション名, キー名, 数値」となります。
 逆にINIファイルからデータを読み込むには次の2つのマクロ文があります。
	getinistr
	getininum
 これらは実は関数で、INIファイル名、セクション名、キー名の3つのパラメータを指定して使います。
	$getstr = getinistr(s1,s2,s3);
	#getbum = getininum(s1,s2,s3);
 文字列型の変数を扱う場合と数値型の場合で関数とその値を代入する変数とで型を合わせる必要があります。

●INI情報の削除
 writeinistrとgetinistr、writeinistrとgetinnumをそれぞれ使えば、INI情報は削除できますが、時間がかかります。そこで、一気にセクションやキーの情報を削除するマクロ文が用意されています。と言ってもwriteinistr文で、第4パラメタに数値の「0」を指定すると、そのキーがiniファイルから削除されます。っさらに、キー名に数値の「0」を指定すると、セクションが削除されます。大量の情報をINIファイルから削除する場合に非常に扱いやすいマクロ文です。writeinistrという名前から、情報を書き込むという先入観で「削除」機能を忘れてしまいがたいですが、使い勝手の良いマクロ文なのでぜひ覚えておきましょう。

●文字列登録マクロの考え方
 文字列登録マクロの動作はいたって簡単です。動作としては(a)文字列情報を取り出す、(b)文字列情報を保存する、この2つしかありません。(a)の動作はさらに、(a-1)INIファイルに保存した文字列を取り出す、(a-2)取り出した文字列を検索あるいは挿入する、の2段階の動作あります。(b)の動作も(b-1)保存すべき文字列を取得する、(b-2)取得した文字列情報をINIファイルに保存する、という動作です。これで全体の設計が完了です。
 あとは、細かい動きを設定していきます。たとえば(b-1)では、文書中から範囲選択により取得するのか、ユーザが手動で入力するのか、さらにある一定の規則によって並べられているファイルから一気に情報をINIファイルに送り込むのかなどを決めていきます。また、(a-1)で文字列を文書中に挿入するとして、単純に挿入するのか、あるいは何らかの処理ができるようにするのかなどの動作を自由に設定できます。たとえばINIファイルに保存されている文字列をすべて小文字に変換して挿入するとか、タブを保存/挿入できるようにするとか、さまざまな処理がユーザにニーズに合わせてほんの少しマクロを書き換えるだけで可能になります。さらにこれらの動作は「動作設定」によってユーザの好みに合わせて調整できるようにするとよいでしょう。

●文字列登録マクロの動作
 同梱した「strins.lzh」をマクロファイル用のフォルダに解凍し、strins.macを実行します。文字列の登録は、登録したい文字列を範囲指定の状態にしておき、strins.macを実行します。文字列の挿入はstrins.macを実行するとポップアップメニューがでるので、挿入したい文字列をクリックします。strins.macの特徴はメニュー画面を複数持つことです。しかも登録文字列は原則的に無制限ですから、いろいろな目的に応じてかなり遊べるマクロのサブルーチンとして展開できます。現版では連続登録と連続削除、登録ブックの変更や初期化は未対応です。それぞれ自由に設計作成してみてください。なお、文字列1文字列2を範囲選択すれば、文字列1が原語、文字列2が訳語として登録され、デフォルトでは原語がメニュー表示され、原語をクリックすると訳語だけが挿入されます。 (以上)

前の項目  次の項目

©1997 Suigwinsui. All rights reserved.