|
履歴ファイルに関するマクロの残骸があったので、
少し説明をいれて、多少、エラー処理を追加してみました。これが疲れる ...
自分で、びしばし、使用した記憶が無いので、
たぶん (会社の) 誰かの要望で作成したのでしょう。
grep "履歴" ... 、で検索できなくて、
grep "99", ... 、で検索できたゴミマクロです。
.01 - .99 を付加した名前を使用しているので、
Windows 95 の時代に作成したんだと思います。
元のマクロの名前が x301.mac だったので、いいかげんなマクロです。
Copyright とかも気にする必要は、当然ありませんマクロです。
単なるマクロのサンプルです。参考になれば幸いです ...
このマクロの動作に関する質問は無いということで ...
文章を書くより、マクロを書くほうが楽なんです ...
//*1 *** Macro for 「秀丸エディタ」 ***
//*1 【マクロ名】 KZ_Save_00A.mac - Ver. xx.xx - 1999/05/22 - 本日の名前です ...
//*1 【作者】 投稿者
//*1 【機能】
//*1 ・現在編集中のファイル内容を処理の対象とした、履歴ファイルの処理です。
//*1 ・履歴ファイルとして保存、前回の内容を戻す、削除の処理です。
//* S. 現在編集中のファイルを、拡張子 .01 - .nn - .99 を付加して保存します。
//* R. 前回 (最後) の履歴ファイル内容を、現在編集中のファイルに戻します。
//* D. 履歴ファイルを、すべて削除します。少し処理時間がかかります。
//* - この削除処理には、「秀丸マクロサーバ」が必要です。
//*1 【注意】
// ・該当する .nn の履歴ファイルが開かれている場合にはその内容を処理します。
// ・ファイル内容の転送は ClipBoard 経由で行っています。
// ・マクロの終了時に、 ClipBoard をクリアしています。
// ・このマクロの仕様は予告無く変更されます。
//*1 【カスタマイズ】
//* 99, 999 (少し遅い) でもいけますが、9999 の考慮はありません !!!
//* 次のコードを、一度でも変更したら、戻さないでください !!!
#max_nn = 99;
//* #max_nn = 999; // (少し遅い)
$file_name1 = filename2;
escape; #x = x; #y = y;
call pp_00_next1;
$tbl_menu1[00] = filename2;
$tbl_menu1[01] = "(&S) ." + $wk1 + " - として保存";
$tbl_menu1[02] = "(&R) ." + $wk2 + " - に戻す \t[Shift]";
$tbl_menu1[03] = "(&D) .nn" + " - をすべて削除 \t[Ctrl]";
//R $tbl_menu1[04] = "";
#tbl_menu1 = 03 + 1;
if( val($wk2) == 00 ){
#tbl_menu1 = 02;
}
menuarray $tbl_menu1, #tbl_menu1;
#menu1 = result - 1;
#sw_shift = iskeydown(0x10); // [Shift]
#sw_ctrl = iskeydown(0x11); // [Ctrl]
if( #menu1 < 00 ){
endmacro;
} else if( #menu1 == 00 ){
endmacro;
} else if( #menu1 == 01 ){
call pp_save1;
} else if( #menu1 == 02 ){
if( val($wk2) == 00 ){ endmacro; }
if( ! #sw_shift ){
message "Press [Shift] Key !!!";
endmacro;
}
call pp_reverse1;
} else if( #menu1 == 03 ){
if( ! #sw_ctrl ){
message "Press [Ctrl] Key !!!";
endmacro;
}
question "Delete All - .nn - ?";
if( ! result ){ endmacro; }
call pp_00_delete1;
beep;
endmacro;
} else{
endmacro;
}
setclipboard "";
escape; moveto 0, #y; // #x, #y;
enableinvert; enabledraw; title 0;
endmacro;
pp_save1:
$wk3 = filename2 + "." + $wk1;
title $wk3;
disabledraw; disableinvert;
selectall; copy;
escape; moveto #x, #y;
call pp_00_open1;
selectall; delete; paste; gofiletop;
saveas $wk3;
if( ! result ){ message "saveas - failed !"; endmacroall; }
setactivehidemaru hidemaruhandle(findhidemaru($file_name1));
call pp_00_close1;
return;
pp_reverse1:
$wk3 = filename2 + "." + $wk2;
title $wk3;
disabledraw; disableinvert;
//R selectall; copy; selectall; delete;
selectall; cut;
call pp_00_open1;
selectall; copy;
setactivehidemaru hidemaruhandle(findhidemaru($file_name1));
disabledraw; disableinvert;
paste;
call pp_00_close1;
save; // 必要ないかも !!!
if( ! result ){ message "save - failed !"; endmacroall; }
return;
pp_00_open1:
#file_wh2 = findhidemaru($wk3);
if ( #file_wh2 == - 1){
openfile "/h " + $wk3;
} else {
setactivehidemaru hidemaruhandle(findhidemaru($wk3));
enableinvert; enabledraw;
}
return;
pp_00_close1:
if ( #file_wh2 == - 1){
closehidemaru hidemaruhandle(findhidemaru($wk3));
} else {
//R closehidemaru hidemaruhandle(findhidemaru($wk3));
}
return;
pp_00_next1:
#i = #max_nn;
#j = strlen(str(#max_nn));
$zero = "0000";
while( #i ){
$wk1 = rightstr($zero+str(#i),#j);
if( ! existfile(filename2+"."+leftstr($wk1,1)+"*") ){
// message filename2+"."+leftstr($wk1,1)+"*";
#i = #i - val(leftstr("1"+$zero,#j));
if( #i <= 0 ){
#i = 0; break;
}
} else {
// $wk1 = rightstr($zero+str(#i),#j);
if( existfile(filename2+"."+$wk1) ){
break;
}
#i = #i - 1;
}
}
if( #i == #max_nn ){
message "Over Max. - .nn - " + str(#max_nn) + " !!!";
endmacro;
}
$wk1 = rightstr($zero+str(#i+1),#j);
$wk2 = rightstr($zero+str(#i),#j);
return;
pp_00_delete1:
if( ! existfile(hidemarudir+"\\macserv.exe") ){
message "「秀丸マクロサーバ」 macserv.exe が必要です !!!";
endmacroall;
}
run "macserv.exe";
ddeinitiate "HideMacroServer", "FileService";
if( !result ) {
message "DDE initiate failed !";
endmacro;
}
#i = #max_nn;
#j = strlen(str(#max_nn));
$zero = "0000";
#k = 0;
#d = 00;
while( existfile(filename2+".*") ){
$wk1 = rightstr($zero+str(#d),#j);
if( existfile(filename2+"."+$wk1) ){
ddeexecute "delete " + filename2 + "." + $wk1;
#k = #k + 1;
}
#d = #d + 1;
}
//R message "Deleted All ! \n- .nn - " + str(#k);
ddeexecute "exit";
return;
endmacroall;
// end of macro.
|
|