|
>ここまで来ると、あまりお勧めでは在りません。
できました !!!
//*5 KZ_Moji_Cnt1.mac - 2000/05/11 - K.Nakatake
// 文字数をカウントするマクロ - 「置換」使用してのカウント
// 更新済みだと中止 !!!
// 無題だと中止 !!!
// 「自動保存」を指定すると中止 !!!
// - 保存がテンポラリファイルで無いと、元のファイルは壊れます !!!
// replaceallfast "[\x09\x20-\xFF]", "", regular; // Tab.
// replaceallfast "[\x81\x40-\xFC\xFF]", "", regular;
if( rightstr(basename,4) == ".mac" ){ endmacro; } // Debug. 1
if( updated ){
message "ERROR - 更新中のファイルは処理できません !!!";
endmacro;
}
if( basename == "" ){
message "ERROR - [無題] のファイルは処理できません !!!";
endmacro;
}
#i = getininum("hidemaru.ini","Env","AutoSaveUpdates");
if( #i ){
message "ERROR - このマクロは「自動保存」を指定すると稼動できません
!!!";
endmacro;
}
gofiletop;
disabledraw;
#time_start2 = tickcount;
//* call pp_env_save1; // 個人のリスクで修正して下さい !!!
call pp_kitori1;
$wk1 = ""; #k = 0;
call pp_sub1 "[\x81\x41-\xFC\xFF]", "全角文字数 - ";
call pp_sub1 "\x81\x40", "全角空白 - ";
call pp_sub1 "[\x21-\xFF]", "半角文字数 - ";
call pp_sub1 "\x20", "半角空白 - ";
call pp_sub1 "\x09", "タブ - ";
gofileend;
#i = y + 1 - 1; #k = #k + #i;
$wk1 = $wk1 + "改行 - "+ str(#i-#q) + "\n";
$wk1 = $wk1 + "\n合計 - "+ str(#k) + "\n";
call pk_msg_time_lap2 #time_start2;
$wk1 = $wk1 + "\nLap Time - " + $$return + "\n";
//* call pp_env_restore1; // 個人のリスクで修正して下さい !!!
title 0 ; message $wk1;
setclipboard $wk1; // クリップボードに結果を入れる
if( basename != "" ){ reopen; }
gofiletop; title 0; // ???
setsearch "", 0x00; // 記憶にありません !
endmacro;
pp_sub1:
if( leftstr($$1,1) == "[" ){
replaceallfast $$1+$$1+$$1+$$1, "", regular;
#i = result * 4;
replaceallfast $$1, "", regular;
#i = #i + result;
} else {
replaceallfast $$1, "";
#i = result;
}
#k = #k + #i;
$wk1 = $wk1 + $$2 + str(#i) + "\n";
title $wk1;
return;
pp_kitori1:
gofiletop; #j = 5000; // こんなもんかな !!!
right #j; insertreturn;
beginsel; gofiletop;
replaceallfast "\\n", "\\n", regular, inselect;
#i = result; backspace; #q = 0;
if( #i < 5 ){
gofiletop;
while( code != eof ){
right 250; insertreturn; #q = #q + 1;
}
}
gofiletop;
return;
// 本当は、稼動するけど、
// データ量が多くなると、超遅くなります !!!
// [HKEY_USERS\.Default\Software\Hidemaruo\Hidemaru\Env]
// "AutoSaveUpdates"=dword:00000000
// "AutoSaveTime"=dword:00000000
// "FloppyAutoSave"=dword:00000001
// "ClearUpdates"=dword:00000001
// "TempAutoSave"=dword:00000000
pp_env_save1:
#autosave1 = getininum("hidemaru.ini","Env","AutoSaveUpdates");
if( #autosave1 ){
#autosave1_time = getininum("hidemaru.ini","Env","AutoSaveTime");
#autosave1_floppy = getininum("hidemaru.ini","Env","FloppyAutoSave");
#autosave1_clearup = getininum("hidemaru.ini","Env","ClearUpdates");
#autosave1_temp = getininum("hidemaru.ini","Env","TempAutoSave");
writeininum "hidemaru.ini", "Env","AutoSaveUpdates", 0;
envchanged;
}
// message str(#autosave1);
return;
pp_env_restore1:
if( #autosave1 ){
writeininum "hidemaru.ini", "Env", "AutoSaveUpdates", #autosave1;
writeininum "hidemaru.ini", "Env", "AutoSaveTime", #autosave1_time;
writeininum "hidemaru.ini", "Env", "FloppyAutoSave", #autosave1_floppy;
writeininum "hidemaru.ini", "Env", "ClearUpdates", #autosave1_clearup;
writeininum "hidemaru.ini", "Env", "TempAutoSave", #autosave1_temp;
envchanged;
}
return;
//*6MICRO pk_msg_time_lap2
//*6_Desc. Lap Time Ver. 03.01
//*6 call pk_msg_time_lap2 arg_n1;
//*6 arg_n1 : start time // ##1
//*6 $$return : lap time - "hh:mm:ss.nnn"
endmacroall;
pk_msg_time_lap2:
##i = tickcount - ##1;
$$wk1 = "." + rightstr("000"+str(##i%1000),3); ##i = ##i / 1000;
while( ##i ){
$$wk1 = ":" + rightstr("00"+str(##i%60),2) + $$wk1;
##i = ##i / 60;
}
$$wk1 = rightstr("00:00:00"+$$wk1,12);
return $$wk1;
//*6MICRO_END
// end of macro.
|
|