|
でるもんた・いいじまです。
> サブルーチンで、検索や置換を呼び出すときに、
> 引数で casesense regular 等を指定することはできないのでしょうか?
>
> たとえば次の感じです。
>
> call SEARCH "abc", "casesense", "regular";
>
> SEARCH:
> searchdown $$1, $$2, $$3;
うーむ、どうしてもその書き方をしたければ、文字列を読み取って
ビット列を算出するサブルーチンを書いたほうがいいかと。
こんな感じです。
動作確認してないのでミスがあったらごめんなさい。
setcompatiblemode 0x20000;
call SEARCH "abc", "casesense", "regular";
endmacro;
//--------------
SEARCH:
$$keywords = $$1;
##opt = 0; // ここはお好みで値を変えてください
##opt = dwParseSearchOption(##opt, $$2);
##opt = dwParseSearchOption(##opt, $$3);
##opt = dwParseSearchOption(##opt, $$4);
##opt = dwParseSearchOption(##opt, $$5);
##opt = dwParseSearchOption(##opt, $$6);
##opt = dwParseSearchOption(##opt, $$7);
##opt = dwParseSearchOption(##opt, $$8);
##opt = dwParseSearchOption(##opt, $$9);
searchdown $$keywords, ##opt;
return;
//--------------
dwParseSearchOption:
if ( $$2 == "word" ) return (##1 | 1);
if ( $$2 == "noword" ) return (##1 & ^1);
if ( $$2 == "casesense" ) return (##1 | 2);
if ( $$2 == "nocasesense" ) return (##1 & ^2);
//以下すべてのオプションについて同様に書いていく
else message "No such option: [" + $$2 + "]", "Runtime Error", 0x10;
|
|