『バイナリクロック』投稿2
『どう書く?.org』への投稿
秀丸マクロでバイナリクロック。
お題:バイナリクロック
特に変わった事はしていない。0と1で刻むクロック。
秀丸マクロにはfor文が存在しなかったり、インクリメント/デクリメントの書式が理解されなかったりするので、コードが賑やかになりがち。
$bin[0] = “”;
$bin[1] = “”;
$bin[2] = “”;
insert “\n\n\n”;
while (1) {
#i = 0;
while (#i < 3) {
call GetBinTime #i;
if ($bin[#i] != $$return) {
$bin[#i] = $$return;
moveto 0,#i;
beginsel;
golineend;
endsel;
insert $bin[#i];
gofileend;
}
#i = #i+1;
}
}
endmacro;
GetBinTime:
refreshdatetime;
if (##1 == 0) {
call Dec2Bin val(hour);
} else if (##1 == 1) {
call Dec2Bin val(minute);
} else {
call Dec2Bin val(second);
}
while (strlen($$return) < 6) {
$$return = ” “+$$return;
}
return $$return;
Dec2Bin:
$$str = “”;
if (##1!=0) {
while (##1!=1) {
$$str = str(##1%2)+$$str;
##1 = ##1/2;
}
$$str = “1”+$$str;
}
return $$str;
投稿: