|
Iranoanさん
ありがとうございます。ご指摘の通り書き換えて色々試したところ、
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
でも
openreg "CURRENTUSER", "Software\\Hidemaruo\\Maruo\\Env";
でも動きますし、
>openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
>writeregnum "SelectFound", 1;
>envchanged;
>
>を
> >openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
> if( !result ){
> message "Can not open registry!";
> endmacro;
> }
> writeregnum "SelectFound", 1;
> envchanged;
>とすれば、エラーになると思います。
こうやってもちゃんと動いています。また、
openreg "CURRENTUSER", "Software\\Hidemaruo\\Majima\\Env";
でも
openreg "CURRENTUSER", "Software\\Hidemaruo\\まじま\\Env";
でも(笑)動きます。
ということはマクロがここを読んでいないということでしょうか。
でもちゃんと連番でタグ付けもできてますし、修正したあとにマクロ
文のメニューから「Tag check」を選んでもちゃんと直してくれます。
マクロ文も色々いじってきたので、念のため今現在のマクロも載せて
おきます。
**************************************************************
//------ InsertTag.mac ----------------------------------------//
config "l+ o+";
menu "&1 Tagging (Japanese)",
"&2 Tag Check";
if( result == 0 ) endmacro;
else if( result == 2 ) goto Revision;
call GetID;
call ChangeSearchMode;
#free = freecursor;
if( !#free ) freecursorswitch;
while( 1 ) {
#x = x; #y = y;
setmark;
moveto 30, #y;
menu "&1 Body <body id=>",
"&2 Division <div id=>",
"&3 Header <head id=>",
"&4 Paragraph <p id=><s id=>",
"***************************",
"&N Next",
"&B Back",
"&E Enter",
"&D Delete",
"***************************",
"&U Undo",
"&R Redo",
"&Q Quit";
#r = result;
moveto #x, #y;
setmark;
if( #r == 0 || #r == 13 ) break;
else if( #r == 1 ) call BodyID;
else if( #r == 2 ) call DivID;
else if( #r == 3 ) call HeadID;
else if( #r == 4 ) call PID;
else if( #r == 6 ) movetolineno 1, lineno + 1;
else if( #r == 7 ) movetolineno 1, lineno - 1;
else if( #r == 8 ) insertfix "\n";
else if( #r == 9 ) deleteline;
else if( #r == 11 ) undo;
else if( #r == 12 ) redo;
if( lineno >= linecount2 - 2 ) endmacro;
}
if( !#free ) freecursorswitch;
RestoreSearchMode:
endmacro;
BodyID:
#body = #body + 1;
#body = val(input( "Body Id", str(#body)));
if( #body == 0 ) return;
insert "<body id=" + str(#body) + ">";
gofileend;
insert "</div>\n</body>\n";
prevpos;
movetolineno 1, lineno + 1;
return;
DivID:
#div = #div + 1;
#div = val(input( "Division Id", str(#div)));
if( #div == 0 ) return;
if( #div > 1 ) insert "</div>\n";
insert "<div id=" + str(#body) + "." + str(#div) + ">";
movetolineno 1, lineno + 1;
#pid = 0;
#head = 0;
return;
HeadID:
#head = #head + 1;
#head = val(input( "Header Id", str(#head)));
if( #head == 0 ) return;
insert "<head id=" + str(#body) + "." + str(#div) + ".h"
+ str(#head) + ">";
golineend2;
insert "</head>";
movetolineno 1, lineno + 1;
#pid = 0;
return;
PID:
#pid = #pid + 1;
#pid = val(input( "Paragraph Id", str(#pid)));
if( #pid == 0 ) return;
insert "<p id=" + str(#body) + "." + str(#div) + ".p"
+ str(#pid) + ">";
golinetop2;
searchdown ">";
right;
#sid = 1;
call SID;
return;
SID:
#line = lineno;
while( 1 ) {
insert "<s id=" + str(#body) + "." + str(#div) + ".p"
+ str(#pid) + ".s" + str(#sid) + ">";
searchdown "[。!?][)>'」 ’”)】〉 ]?", regular;
if ( !result ) endmacro;
if( lineno > #line ) {
golinetop2;
break;
}
moveto selendx, selendy;
if( code == 0x0d ) {
insert "</s></p>";
movetolineno 1, lineno + 1;
break;
} else insert "</s>";
#sid = #sid + 1;
}
return;
//------- Tag check -------//
Revision:
call ChangeSearchMode;
disabledraw;
if( selecting ) {
escape;
moveto selendx, selendy;
#endline = lineno;
moveto seltopx, seltopy;
} else {
gofiletop;
#endline = linecount2;
}
while( 1 ) {
golinetop2;
#i = 1;
while( 1 ) {
#line = lineno;
searchdown "s[0-9]+", regular;
if( result == 0 ) goto End;
if( lineno > #line ) break;
if( lineno >= #endline ) {
golinetop2;
goto End;
}
insert "s" + str( #i );
#i = #i + 1;
}
}
End:
call RestoreSearchMode;
endmacro;
ChangeSearchMode:
#searchmode = searchmode;
if( !#searchmode ) { //検索状態を変更
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound", 1;
envchanged;
}
return;
RestoreSearchMode:
if( !#searchmode ) { //検索状態をもとにもどす
writeregnum "SelectFound", 0;
envchanged;
closereg;
}
return;
GetID:
##x = x; ##y = y;
searchup "p id=[0-9.]+p", regular;
if( !result ) goto GetEnd
moveto selendx, y;
beginsel;
searchdown ">";
#pid = val( gettext( seltopx, seltopy, selendx, selendy ) );
moveto ##x, ##y;
searchup "head id=[0-9.]+h", regular;
moveto selendx, y;
beginsel;
searchdown ">";
#head = val( gettext( seltopx, seltopy, selendx, selendy ) );
moveto ##x, ##y;
searchup "div id=[0-9]+", regular;
moveto selendx, y;
right;
beginsel;
searchdown ">";
#div = val( gettext( seltopx, seltopy, selendx, selendy ) );
moveto ##x, ##y;
searchup "body id=";
moveto selendx, y;
beginsel;
searchdown ">";
#body = val( gettext( seltopx, seltopy, selendx, selendy ) );
GetEnd:
moveto ##x, ##y;
return;
//-------------------------------------------------//
> Majimaさん今日は、Iranoan です。
>> で、一般に、各ユーザーごとのアプリの設定は
>> HKEY_CUREENT_USER\Software\作者名\アプリ名
>> というキーの下に置くのが作法とされています。
>> 秀丸の場合は上記の場所になります。
> ここまでは、でるもんたさんの仰るとおりです。しかし
>> 私は特別な環境(韓国語XP+英語版秀丸Ver3.19)でこのマクロを動かして
>> いる
>ということなので、
>> openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
>を
>openreg "CURRENTUSER", "Software\\Hidemaruo\\Maruo\\Env";
>としないと、正常に動作しないかも知れません。少なくとも Ver.4.07 では、
>ここを見ているようです。
>
>> プログラムが自動的にデータの記録や更新、削除などを行うとされて
>> いますが、このマクロの場合もそうなんでしょうか。
> マクロを見てみると、検索にヒットしたときに、いつも範囲選択する設定に
>するためのようです。
> Majimaさんの環境では、このカテゴリーは無いと思いますので、
>> openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
>> writeregnum "SelectFound", 1;
>> envchanged;
>を
> openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
> if( !result ){
> message "Can not open registry!";
> endmacro;
> }
> writeregnum "SelectFound", 1;
> envchanged;
>とすれば、エラーになると思います。今まで、設定の変更ができなくても正常
>に動いていたのは、Majimaさんが、既に設定で検索にヒットしたときに
>範囲選択するようにしていたためだと思います。
>
> P.S できれば、Ver.4.07 へのヴァージョン・アップをお勧めします。
|
|