秀丸エディタ用の乱数作成マクロ
秀丸エディタで動作するマクロ「乱数マクロ」です。浮動小数点数バージョンの秀丸エディタであれば"Random"で乱数を作成できるようですが、ふつうの秀丸エディタではできないっぽいのでマクロをつくりました。
乱数とはいってもしょせん擬似乱数です。Windowsが起動してからの経過時間から数値をひっぱってきているだけですから……。でも、それっぽくなっているはず。
この「乱数マクロ」単体では使い道がないので、ほかのマクロから呼びだして使用します。適当な名前(random.mac等)で保存して使用してください。ほかのマクロから呼びだす場合は、あたりまえですが、不要な箇所を削除してからお使いください。
ちなみに、秀丸エディタVer7.02で作成とテストをしています。ほかのバージョンでの動作がどうなるかは不明。Ver6.14以降の秀丸エディタなら「まあ大丈夫」だとは思いますが……。
以下、乱数マクロでございます。
//■秀丸エディタの乱数マクロ// 設定項目。希望する乱数の最小値と最大値へ変更してください
#min = 1; //乱数の最小値。1桁のみ対応
#max = 6; //乱数の最大値。1桁のみ対応
// 変数の定義。変更不可
#number = 0; //乱数マクロ実行結果
#rammax = #max - #min; //判定に使用する乱数の最大値
#tickcount = 0; //Windowsが起動してからの経過時間
#tc1 = #max + 1; //Windows経過時間の下一桁
#start = 0; //カウント開始時のWindows経過時間
#delay = 0; //遅延時間
#count = 0; //計算回数
#temp = 0;
// Windows経過時間が変化するまでの計算回数をカウントする処理
// ばらつきがかなりでるのでちょうどいい
#start = tickcount;
#tickcount = tickcount;while (#start == #tickcount) {
#tickcount = tickcount;
#count = #count + 1;
}#delay = #count * 9;
// 経過時間から数値を取得する(0~#rammax)
while (#tc1 > #rammax) {//経過時間をすすませる
while (#temp < #delay) {
#temp = #temp + 1;
}//経過時間の下一桁を取得
$tickcount = str(tickcount);
$tc1 = rightstr($tickcount,1);
#tc1 = val($tc1);}
// 取得した数値が0~#rammaxのため#minをたして帳尻をあわせる
#number = #tc1 + #min;
//確認用
message "乱数マクロの結果は " + str(#number) + " です。";
endmacro;
正直いいまして一部手抜きをしています^_^; #min と #max の値をチェックすべきなんですが、はしょっています。必ず1桁にして #min よりも #max がおおきくなるようにしてください。
カテゴリ
小説以外のブログ記事トラックバック(0)
このブログ記事を参照しているブログ一覧: 秀丸エディタ用の乱数作成マクロ
このブログ記事に対するトラックバックURL: http://asakawa.sakura.ne.jp/cgi-bin/mt/mt-tb.cgi/142
コメントする