[158]
テキスト電卓+
りーや
テキストで書かれた式を計算(評価)して計算結果を貼り付けます。
選択範囲があればその範囲を、無ければカーソル位置から直前の
タブか行頭までを選択状態にして、計算対象とします。
計算結果だけでなく、計算式も残しておきたいときは、右端に =
を付けます。
(600+55)*3= → (600+55)*3=1965
(600+55)*3 → 1965
という感じです。
ちょっとした計算をさせたいときに、タブを置いてから
計算式を入力して利用できます。
666/32=20.8125 四捨五入 Math.round(666/32)=21
剰余 10%3=1
累乗 Math.pow(3,2)=9
Math.pow(3,0.5)=1.7320508075688772
ビットシフト 256>>2=64
位取りのカンマは使えません
5,500*3=1500
5と500*3と捕らえて、後の方の結果が返ってきます。
その他、実はJScriptとして実行結果を返しているだけ
なので、使える式などはJScriptの入門などを検索・参照
して下さい。
※判らない方は気にしなくて良いですが、数行のJScriptマクロ
を書いて、結果に置き換えるなんてのも出来るハズです
// テキスト電卓+
var i , col , outStr;
var selStr = Editor.GetSelectedString(0); // 選択文字列を取得
Editor.MoveHistSet(); // 現在位置を移動履歴に登録
if(selStr == ""){ // 選択範囲がないなら以下を行なう
Editor.BeginSelect(); // 範囲選択開始
Editor.GoLineTop(1); // 行頭に移動(折り返し単位)
selStr = Editor.GetSelectedString(0); // 選択文字列を取得
col = selStr.lastIndexOf("\t"); // タブを探して
if(col > 0) // タブがもしあれば タブの右側まで
for(i=0; i<=col; i++) Editor.Right(); // カーソル移動
selStr = Editor.GetSelectedString(0); // 選択文字列の再取得
}
try {
if(selStr.match(/^(.+)=[ \t\r\n]*$/) != null){ // = で終っている
outStr = eval(RegExp.$1); // ならばその前を評価
outStr = selStr + outStr; // 式と結果を
} else { // そうでなければ
outStr = eval(selStr); // 式を結果で置き換えて
}
Editor.InsText(outStr); // 選択範囲部分に貼り付ける
} catch (error) { // eval のエラーをトラップ?
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.Popup(selStr+"\n"+error ,0,"計算式に間違い",0);
Editor.CancelMode(); // 各種モードの取り消し
Editor.MoveHistPrev(); // 移動履歴:前へ
}