『バイナリクロック』投稿2

どう書く?.org』への投稿

秀丸マクロでバイナリクロック。

お題:バイナリクロック

http://ja.doukaku.org/275/

特に変わった事はしていない。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;

投稿:

http://ja.doukaku.org/comment/9432/