|
「秀丸」のバージョンを上げれますか ???
//*1 *** Macro for 「秀丸エディタ」 ***
//*1 【マクロ名】 KZ_GrepUp1.mac - Ver. 03.04 - 1999/11/11
//*1 (C) Copyright 番頭++ (Bantou++). 1996 - 1999. All Rights Reserved.
//*1 【作者】 K.Nakatake / 番頭++ / E-mail:xxxxxxxx@nifty.ne.jp
//*1 【機能】
//*1 ・Grep 行の本文更新処理
//*1 ・Grep の後でこの処理を実行して下さい !
//*1 ・Grep の後で、置換を行い、その変更を本文に反映させます。便利 !!!
//*1 ・カーソル位置から、本文を更新します。
//*1 ・本文は、必ず保存されます !!!
//*1 ・ question "Grep 行の更新後ファイルをクローズしますか ?";
//*1 これは後で、undo; redo; が出来るためです。
//*1 ・何度も、何度も変わったものを作成しました。
//*1 ・
//*1 【注意】
//*1 ・本文は、必ずクローズしてこのマクロを実行してください !!!
//*1 ・( ) - 括弧を含んだファイル名は正常に処理できません。仕様です !!!
//*1 ・あまりに多くの「秀丸」を開いていると、
//*1 マクロが正常に終了しないことがあります。
//*1 これはマクロでは対処できません。今は、案がありません。
//*1 ・ call pp_delay2; // 根拠のない、昔の芸の復活 !!!
//*5 安定した、確実な変更方法を模索する日々 !!!
//*5 #act_1 , ##wk_time99 ... ワカラン !!!
//*1 ・このマクロの仕様は予告無く変更されます。
//*1 ・
//
if( version < 301 ){ // 個人的な理由 !!!
message "すみません、version (3.01) のチェックを行なっています !";
about;
endmacroall;
}
call pp_grep_after1;
question "Grep 行の本文更新処理を行ないますか ?";
// if( ! result ){ message "マクロを中止します !"; endmacro; }
if( ! result ){ endmacroall; }
question "Grep 行の更新後ファイルをクローズしますか ?";
if( iskeydown( 0x1B ) ){ endmacroall; } // [Esc]
#sw_close = result;
config "w1000"; // max. Ver. 3.00 から
disabledraw;
disableinvert;
// gofiletop;
$time_start1 = time;
$str_f1 = filename2;
//R #handle1 = hidemaruhandle( findhidemaru( $str_f1 ) );
//R setactivehidemaru #handle1;
while( code != eof && code != 0x0d ){
title filename2 + " : Grep 行の本文更新処理 - " + $time_start1 + " -
" + time;
golinetop2; beginsel;
while( code != '(' ){
if( code == 0x0d ){
message "Bug-1 - file name !!!"; escape; endmacroall;
}
right;
}
$str_f2 = gettext(seltopx,seltopy,selendx,selendy); escape;
while( code != ':' ){
if( code == 0x0d ){
message "Bug-2 - grep !!!"; escape; endmacroall;
}
right;
}
right 2; beginsel; golineend2;
$str_line = gettext(seltopx,seltopy,selendx,selendy); escape;
if( $str_line == "" ){
message "Bug-3 - no line !!!"; escape; endmacroall;
}
golinetop2;
if( findhidemaru( $str_f2 ) == -1 ){
if( #sw_close ){
openfile "/h " + $str_f2;
} else {
openfile $str_f2;
}
} else {
// setactivehidemaru hidemaruhandle(findhidemaru($str_f2));
}
call pp_delay2;
setactivehidemaru hidemaruhandle(findhidemaru($str_f1));
tagjump;
if( ! result ){
message "ERROR - tagjump failed !";
endmacroall;
}
setactivehidemaru hidemaruhandle(findhidemaru($str_f2));
beginsel; golineend2; delete;
insert $str_line;
golinetop2;
if( #sw_close ){
call pp_delay2;
saveas filename2;
if( ! result ){
message "ERROR - saveas failed !\n\n" + filename2;
endmacroall;
}
}
backtagjump;
if( ! result ){
message "ERROR - backtagjump failed !";
endmacroall;
}
setactivehidemaru hidemaruhandle(findhidemaru($str_f1));
if( #sw_close ){
$wk1 = filename[01];
closehidemaru 1;
#act_1 = -99; // bug ???
while( #act_1 != -1 ){
call pp_delay2;
#act_1 = findhidemaru($wk1);
}
}
golinetop2; golineend2; right;
}
beep; message "Start : " + $time_start1 + "\nEnd : " + time;
// gofiletop;
enableinvert;
enabledraw;
beep; title 0;
setsearch "", 0x00; setclipboard ""; // 記憶にありません !
endmacro;
pp_delay1_test:
##i = tickcount;
while( ( ##i + 25 ) > tickcount ){ $$wk_time99 = time; ##j = ##j + 1; }
message str(##i) + " - " + str(tickcount) + " - " + str(##j);
return;
pp_delay2:
##i = tickcount;
while( ( ##i + 25 ) > tickcount ){ $$wk_time99 = time; } // time 鴨 !!!
return;
pp_grep_after1:
escape;
golinetop2; selectline;
searchdown ".\\([0-9]+\\): .", regular, inselect;
#j = result; escape; golinetop2;
if( ! #j ){
message "この処理は、 Grep の後に行って下さい !";
endmacro;
}
escape;
return;
endmacroall;
// end of macro.
//*1 *** Macro for 「秀丸エディタ」 ***
//*1 【マクロ名】 KZ_GrepUp2.mac - Ver. 03.04 - 1999/11/11
//*1 (C) Copyright 番頭++ (Bantou++). 1996 - 1999. All Rights Reserved.
//*1 【作者】 K.Nakatake / 番頭++ / E-mail:xxxxxxxx@nifty.ne.jp
//*1 【機能】
//*1 ・Grep 行の本文更新処理 - 試験運転中の「サンプル」 !!!
//*1 ・Grep の後でこの処理を実行して下さい !
//*1 ・Grep の後で、置換を行い、その変更を本文に反映させます。便利 !!!
//*1 ・カーソル位置から、本文を更新します。
//*1 ・本文は、必ず保存されます !!!
//*1 ・安定して稼動すれば、 KZ_GrepUp1.mac より速い処理です。
//*1 ・何度も、何度も変わったものを作成しました。
//*1 ・
//*1 【注意】
//*1 ・本文は、必ずクローズしてこのマクロを実行してください !!!
//*1 ・( ) - 括弧を含んだファイル名は正常に処理できません。仕様です !!!
//*1 ・あまりに多くの「秀丸」を開いていると、
//*1 マクロが正常に終了しないことがあります。
//*1 これはマクロでは対処できません。今は、案がありません。
//*1 ・ call pp_delay2; // 根拠のない、昔の芸の復活 !!!
//*5 安定した、確実な変更方法を模索する日々 !!!
//*5 #act_1 , ##wk_time99 ... ワカラン !!!
//*1 ・このマクロの仕様は予告無く変更されます。
//*1 ・
//
if( version < 301 ){ // 個人的な理由 !!!
message "すみません、version (3.01) のチェックを行なっています !";
about;
endmacroall;
}
call pp_grep_after1;
question "Grep 行の本文更新処理を行ないますか ?";
// if( ! result ){ message "マクロを中止します !"; endmacro; }
if( ! result ){ endmacroall; }
// question "Grep 行の更新後、ファイルをクローズしますか ?";
// #result = result;
// if( iskeydown( 0x1B ) ){ endmacroall; } // [Esc]
// #sw_close = #result;
#sw_close = true; // 必ずクローズする !!!
config "w1000"; // max. Ver. 3.00 から
#windowheight = windowheight;
// setwindowsize windowwidth, windowheight / 2; // 縦、半分 !!!
setwindowsize windowwidth, 10;
disabledraw;
disableinvert;
// showwindow 0; // 不安、気休め !!!
// gofiletop;
//R #handle1 = hidemaruhandle( findhidemaru( $str_f1 ) );
//R setactivehidemaru #handle1;
$time_start1 = time;
$str_f1 = filename2;
#handle1 = hidemaruhandle( 0 );
// message str(#handle1);
$str_f2 = ""; $str_f3 = ""; $str_file3 = "";
$str_dir1 = directory2;
if( rightstr($str_dir1,1) != "\\" ){
$str_dir1 = directory2 + "\\"; // C:\ ???
}
while( code != eof && code != 0x0d ){
title filename2 + " : Grep 行の本文更新処理 - " + $time_start1 + " -
" + time;
golinetop2; beginsel;
while( code != '(' ){
if( code == 0x0d ){
message "Bug-1 - file name !!!"; escape; endmacroall;
}
right;
}
$str_f2 = gettext(seltopx,seltopy,selendx,selendy); escape;
while( code != ':' ){
if( code == 0x0d ){
message "Bug-2 - grep !!!"; escape; endmacroall;
}
right;
}
right 2; beginsel; golineend2;
$str_line = gettext(seltopx,seltopy,selendx,selendy); escape;
if( $str_line == "" ){
message "Bug-3 - no line !!!"; escape; endmacroall;
}
golinetop2;
$str_f2 = $str_dir1 + $str_f2;
if( $str_f2 != $str_f3 ){
if( #sw_close && $str_file3 != "" ){
call pp_close_prev1;
$str_f3 = ""; $str_file3 = "";
}
if( findhidemaru( $str_f2 ) == -1 ){
if( #sw_close ){
openfile "/h " + $str_f2;
if( ! result ){
message "ERROR - openfile /h failed !";
endmacroall;
}
} else {
openfile $str_f2;
if( ! result ){
message "ERROR - openfile failed !";
endmacroall;
}
}
#sw_open1 = false;
} else {
setactivehidemaru hidemaruhandle(findhidemaru($str_f2));
if( updated ){
message "ファイルは更新されています !"; endmacroall;
}
#sw_open1 = true;
}
call pp_delay2;
$str_f3 = $str_f2; $str_file3 = filename2;
setactivehidemaru #handle1;
}
tagjump;
if( ! result ){
message "ERROR - tagjump failed !";
endmacroall;
}
call pp_delay2;
setactivehidemaru hidemaruhandle(findhidemaru($str_file3));
golinetop2; beginsel; golineend2; // delete;
insertfix $str_line;
// golinetop2; escape; //
// setwindowsize 80, 04;
backtagjump;
if( ! result ){
message "ERROR - backtagjump failed !";
endmacroall;
}
call pp_delay2;
setactivehidemaru #handle1;
disabledraw;
golinetop2; golineend2; right;
}
if( #sw_close && $str_file3 != "" ){
call pp_close_prev1;
$str_f3 = ""; $str_file3 = "";
}
beep;
call pk_msg_time_lap1 $time_start1;
// gofiletop;
setwindowsize windowwidth, #windowheight;
// showwindow 1;
enableinvert;
enabledraw;
beep; title 0;
setsearch "", 0x00; setclipboard ""; // 記憶にありません !
endmacro;
pp_close_prev1:
// nexthidemaru;
// prevhidemaru;
// setactivehidemaru 1;
setactivehidemaru hidemaruhandle(findhidemaru($str_file3));
saveas $str_file3;
if( ! result ){
message "ERROR - saveas failed !\n\n" + $str_file3;
endmacroall;
}
setactivehidemaru #handle1;
if( ! #sw_open1 ){
$wk1 = $str_file3;
closehidemaru hidemaruhandle(findhidemaru($str_file3));
if( ! result ){
message "ERROR - closehidemaru failed !\n\n" + $str_file3;
endmacroall;
}
#act_1 = -99; // bug ???
while( #act_1 != -1 ){
call pp_delay2;
#act_1 = findhidemaru($wk1);
}
}
return;
pp_delay1_test:
##i = tickcount;
while( ( ##i + 25 ) > tickcount ){ $$wk_time99 = time; ##j = ##j + 1; }
message str(##i) + " - " + str(tickcount) + " - " + str(##j);
return;
pp_delay2:
##i = tickcount;
while( ( ##i + 25 ) > tickcount ){ $$wk_time99 = time; } // time 鴨 !!!
return;
pk_str_dir1:
$str_dir1 = directory2;
if( rightstr($str_dir1,1) != "\\" ){
$str_dir1 = directory2 + "\\"; // C:\ ???
}
// message $str_dir1;
return;
pp_grep_after1:
escape;
golinetop2; selectline;
searchdown ".\\([0-9]+\\): .", regular, inselect;
#j = result; escape; golinetop2;
if( ! #j ){
message "この処理は、 Grep の後に行って下さい !";
endmacro;
}
escape;
return;
//*6MICRO pk_msg_time_lap1
endmacroall;
pk_msg_time_lap1:
$$e = time; // end time
if( $$1 > $$e || strlen($$1) != 8 ){ return ""; }
##sh = val(leftstr($$1,2)); ##sm = val(midstr($$1,3,2)); ##ss = val(r
ightstr($$1,2));
##eh = val(leftstr($$e,2)); ##em = val(midstr($$e,3,2)); ##es = val(r
ightstr($$e,2));
##s = ( ( ( ##sh * 60 ) + ##sm ) * 60 ) + ##ss;
##e = ( ( ( ##eh * 60 ) + ##em ) * 60 ) + ##es;
##i = ##e - ##s;
if( ##i <= 03 ){ return "00:00:00"; }
//R if( ##i == 00 ){ return "00:00:00"; }
$$wk1 = ":" + rightstr("00"+str(##i%60),2); ##i = ##i / 60;
$$wk1 = ":" + rightstr("00"+str(##i%60),2) + $$wk1; ##i = ##i / 60;
$$wk1 = rightstr("00"+str(##i%60),2) + $$wk1; ##i = ##i / 60; // lap
time
message "Start Time : " + $$1 + "\nEnd Time : " + $$e + "\nLap Time :
" + $$wk1;
return $$wk1;
//*6MICRO_END
endmacroall;
// end of macro.
|
|