|
openmacrodir; // もほしいのですが、
editrecord; // を先に追加してほしいです。 個人的な意見ですが ...
>文中に書かれたマクロを実行
>するほど高度じゃありませんが…(^^;)
昔からの寄せ集めなのですよ。高度といわれると ...
発表はしませんが、(その人のコーディングに依存するので ... )
openfile "temp1.mac";
searchdown "pk_debug_break:";
if( result ){endmacroall;}
escape;gofiletop;
//R$str_find = "\twhile.+{";
$str_find = "^(return;|return )";
searchdown $str_find, regular;
while( result ){
escape;
if( code == 0x09 ){golineend;}
#k = #k + 1;
insert "\ncall pk_debug_break \"" + rightstr("0000"+str(#k),4) + "\";\n";
finddown;
}
gofileend;insertreturn;
insert "pk_debug_break:\n";
insert "#kz_break = #kz_break + 1;\n";
insert "$$wk1 = time + \" - KZ_Break - From - \" + $$1 + \" - \" + str(#kz_break);\n";
insert "question $$wk1;\n";
insert "title $$wk1;\n";
insert "if( ! result ){ title -1; endmacroall; }\n";
insert "return;\n";
save;
execmacro "temp1.mac";
endmacroall;
も役に立ってくれてた機能です。
if ( ##wn == 0 ) $ww = "日";
if ( ##wn == 6 ) $ww = "土";
でも、よいのですが、if 敬遠症候群のひとは、
#w = 3; // 水
$w = midstr("日月火水木金土",#w%6*2,2);
message $w;
のほうが好きです。
#m = 2; // 如月
$str1="/1.07/January/2.08/February/3.05/Match../13.LL/";
#i = strstr($str1,"/"+str(#m)+".");
#j = val(midstr($str1,#i+3,2));
$m = midstr($str1,#i+6,#j);
message $m;
##i = val(leftstr(date,2));
$$today1 = midstr("19,20",(!(##i<80)-1)*3,2) + leftstr(date,8);//yyyy/mm/dd
message $$today1;
もおなじ、midstr です。
if( strstr("/1/2/4/6/8/",str(#menu1)) != -1 ){}
$pk_tbl_month_str1 = "31,28,31,30,31,30,31,31,30,31,30,31";// 01-12
$pk_tbl_month_str2 = "00,31,28,31,30,31,30,31,31,30,31,30,31";// 00-12
$pk_tbl_monthj_str1 = "000,031,059,090,120,151,181,212,243,273,304,334,365";// 01-13
$pk_tbl_monthj_str2 = "000,000,031,059,090,120,151,181,212,243,273,304,334,365";// 00-13
pk_month_last: // yyyy,mm - 1901-2099
##i = ( ##1%4 == 0 );
#cal_mm_last = val($pk_tbl_montha1[##2]) + ( ##2==2 && ##i ); // last date
#cal_mm_jul = val($pk_tbl_montht1[##2]) + ( ##2>2 && ##i ); // Julian date
#cal_weekf = 1 - 1 ; // 1900/01/01 - 1 ???
##i = ##1 - 1900 ;
##i = #cal_weekf + ##i + (##i-1)/4 + 1 + #cal_mm_jul; // 365-INT(365/7)*7
#cal_weekf = ##i % 7 ; // first day 0-6
#cal_weekt = ( #cal_mm_jul - #cal_weekf + 6 ) / 7 ; // first total weeks
// message str(#cal_weekf) + " - " + str(#cal_weekt);
return;
pk_month_today1f: // yyyy,mm,dd - 1901-2099
##error = -1;
if( ##1 <= 1900 || ##1 >= 2100 ){ return ##error; }
if( ##2 < 01 || ##2 > 12 ){ return ##error; }
##ld = val(midstr("00,31,28,31,30,31,30,31,31,30,31,30,31",##2*3,2)); // 00-12
##td = val(midstr("000,000,031,059,090,120,151,181,212,243,273,304,334,365",##2*4,3)); // 00-12
##i = ( ##1%4 == 0 );
##ld = ##ld + ( ##2==2 && ##i ); // last date
if( ##3 < 00 || ##3 > ##ld ){ return ##error; }
##td = ##td + ( ##2> 2 && ##i ); // Julian date
##cf = 1 - 1 ; // 1900/01/01 - 1 ???
##i = ##1 - 1900 ;
##i = ##cf + ##i + (##i-1)/4 + 1 + ##td; // 365-INT(365/7)*7
##i = ##i % 7 ; // first day 0-6
##k = ( ##i + ##3 - 1 ) % 7 ; // day 0-6
##j = ( ##td - ##k + 6 + ##3 - 1) / 7 + 1; // total weeks 1-54
return ##k;
ロジックを学ぶときには、カレンダーを作れとよく言われたことがあります。
> insdate://カーソル位置への日付の挿入
> ##nen = ( ( ##y - 53) / 4 * 1461 ) + (( ##y - 53) % 4 ) * 365;
その人の作成したカレンダープログラムはその人の性格が出るのだそうです。
1953 年は「巳 み 」ですよね、あちきは「辰 たつ」ですから、もう少しのところで、
insdate のお世話にはなれませんでした。ざんねん、ひょっとして noro さんのおや
じさんはあちきより、一つ年下かなぁ。
|
|