教えて下さい。No.41277
(-L-) さん 24/06/17 16:40
 
秀丸マクロ初心者なので教えてください。(秀丸は9.35 Beta 9)

test.txt
------------------
title: "hogehoge"
title:"${title}"
------------------

というのがあり、秀丸からマクロ実行を選択して、以下のマクロを動かしました。

test.mac
------------------
// 検索開始位置をファイルの先頭に設定
gofiletop;
//正規表現(regular)で検索
searchdown2  "title:.?\"[^$].*\"", regular;
$str = gettext( seltopx, seltopy, selendx, selendy, 1 );
message $str;
------------------

searchdown2で、

title: "hogehoge"

の文字列が反転してくれます。
が、gettextで文字列を変数に格納できない。
(最終的には、変数に格納してから、正規表現だかなんだかで値をhogehogeだけにす
る処理をしたいのですが。。そもそも変数に入ってくれない。)

何かが間違っている(勘違いしている)のだとマクロヘルプを読んでも迷子です。



[ ]
RE:41277 教えて下さい。No.41278
igus さん 24/06/17 17:17
 
反転はしていても選択されていないので seltopx とかでは拾えないようです。
代わりに foundtopx を使えば上手くいきました。

$str=gettext(foundtopx,foundtopy,foundendx,foundendy,1);

[ ]
RE:41278 教えて下さい。No.41279
(-L-) さん 24/06/17 17:21
 
>反転はしていても選択されていないので seltopx とかでは拾えないようです。
>代わりに foundtopx を使えば上手くいきました。

ありがとうございます。
反転と選択が異なるとは。(ヘルプを読んでも判りませんでした。)
いずれにせよ、次に進めることができるので大変助かりました。

[ ]
RE:41279 教えて下さい。No.41280
秀丸担当 さん 24/06/18 10:36
 
検索後は、[その他]→[動作環境]→[検索]→[検索での表示]によって、点滅表示にな
る場合と範囲選択になる場合があります。
前にも似た話があった気がして、はまりやすいポイントだと思うので、そのあたりヘ
ルプにも書いておこうと思います。

foundtopx等を使う方法とは別に、setcompatiblemodeを使う方法もあります。
マクロの先頭あたりでsetcompatiblemode 0x200;としておくと、マクロ内では動作環
境に関わらず、[検索での表示]=[範囲選択]として動作するようになります。

setcompatiblemode 0x200;
searchdown "a";
$str = gettext( seltopx, seltopy, selendx, selendy, 1 );
message $str;
endmacro;

[ ]