|
こちらでテストした限りでは、そのマクロのままでうまくgrepが実行されまし
たけども…
とあえずですが、grep文の前に、
message $AppleLine;
とかの文を入れてみれば、getclipboardがうまくいってるかどうか分かってい
いんじゃないかと思います。こちらでは、たしかに検索でヒットした行の内容が
うまく変数に入ってることが確認出来ました。
getclipboardを使わないやり方をするとしたら、gettext関数を使うのがいい
と思います。
gofiletop;
searchdown "Apple", nocasesense;
golinetop2;
#x1 = x; #y1 = y;
golineend2;
#x2 = x; #y2 = y;
$AppLine = gettext( #x1, #y1, #x2, #y2 );
message $AppLine;
のようにしてみたらどうでしょ?
> 希望動作は
> 「検索して、ヒットした部分の文字列で(変数にいれて?)、grepをかける」
> です。
今回のマクロは、ヒットした部分の文字列でgrepをかけるのではなくて、ヒッ
トした部分の「行全体の内容」でgrepをかけるような処理になると思います。
もしも、ヒットした部分の文字列でgrepをかけるのでしたら、"Apple"でgrep
をかければいいだけになってしまうと思います。
あるいは、何かの正規表現パターンで検索してヒットした、そのヒットした文
字列そのままでgrepしたいということでしたら、それはそれで、また別の作戦が
考えられます。ちょっと難しいですが、「動作環境・検索」の「検索での表示」
を「範囲選択」に切り替えて取得するようなマクロにする手があります。
例えばですが、
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#SelectFound = getregnum( "SelectFound" );
if( #SelectFound == 0 ) {
writeregnum "SelectFound", 1;
envchanged;
}
gofiletop;
searchdown2 "Apple", nocasesense;
$text = gettext( seltopx, seltopy, selendx, selendy );
if( #SelectFound == 0 ) {
writeregnum "SelectFound", 0;
envchanged;
}
message $text;
のような感じのマクロにする作戦があります。
あと、searchdownだとファイル先頭にある"Apple"にはヒットしないので、
searchdown2にした方がいいんじゃないかと思います。
|
|