|
サイトー企画さま
n13 です。
おしょう@山寺さんの話題に便乗して、
execmacro の拡張をお願いしたいと思います。
私のマクロディレクトリには数十個のマクロファイルがあるのですが、
まったく同じ内容のサブルーチンが、
いくつものマクロファイルに記述されています。
下記は、その一例です。
//
// ファイル存在判定
// @return true 引数のパスはファイル(ディレクトリではない)
// flae 引数のパスはファイルではない
//
myExistFile:
$$path = $$1; // パス
// 入力チェック
if($$path == "") {
return false;
}
// ファイルorディレクトリが存在する?
if(! existfile($$path)) {
return false;
}
// 存在するものはディレクトリ?
if(strstr($$path, "*") >= 0) {
return false;
}
if(existfile($$path + "\\*.*")) {
return false;
}
// ファイルが存在する
return true;
もし、これらのサブルーチンにバグがあった場合、
いくつものマクロファイルを修正する必要が生じ、
保守性が非常に悪いです。
ところが、execmacro が引数を取れるのであれば、
汎用的なサブルーチンを1つのマクロファイルだけに記述し、
他のマクロファイルは、それを呼び出すだけとなり、
バグがあっても修正するファイルは1ファイルで済みます。
なお、現在、マクロファイル間のデータの引渡しには、
以下のような方法が考えられています。
・ini ファイルを使う
・レジストリを使う
・dll を使う
・クリップボードを使う
・カーソル位置に書き読みする
しかし、たった20数ステップの処理に対して
これらの方法は大げさ過ぎるため、
いくつものファイルに同じサブルーチンを記述しています。
ということで、以下のような execmacro の拡張を希望します。
書式: execmacro <マクロファイルのパス> [,引数1 [,引数2 ... [,引数9]]]
※起動されるマクロでは、$1, $2, ... $9 および #1, #2, ... #9 に、
引数1 〜 引数9 が格納されている。
欲をいうと、渡された引数の数が #0 に格納されていたりすると、
入力チェックがしやすくなってうれしいです。
長文となり申し訳ありませんがご検討の程、よろしくお願いいたします。
|
|