|
ひさびさに(^^;)新規原稿です。
●マクロ中の演算子の意味は?
Q. 秀丸マクロに使える演算子がヘルプに書いてありますが、私はC言語を
知らないので演算子の意味がわかりません。(^^;)
A. 以下の表とマクロ例を参考にしてみてください。
============================================
算術演算子
+ 加算
- 減算
* 乗算
/ 除算(商)
% 剰余(MOD)
論理演算子
<= (右辺)は(左辺)以上
>= (右辺)は(左辺)以下
< (右辺)は(左辺)より大きい
> (右辺)は(左辺)より小さい
!= (右辺)は(左辺)と違う
== (右辺)は(左辺)と同じ
&& AND:(左辺)かつ(右辺)
|| OR:(左辺)または(右辺)
! NOT:(右辺)ではない
ビット演算子
| OR
& AND
^ XOR
============================================
・算術演算子の例
秀丸の数値変数は整数型なので、/(除算)は余りを切り捨てた商の値に
なります。
// 除算のマクロ例(ここから)
#a = 17;
#b = 5;
#c = #a / #b;
#d = #a % #b;
message str(#c); // 3が表示される
message str(#d); // 2が表示される
endmacro;
// (ここまで)
+(加算)は文字変数にも使えます。ということは、秀丸マクロ言語は
文字変数についてはC言語よりも BASIC 等に近いと言えます。
// 文字列加算のマクロ例(ここから)
$a = "秀丸がインストールされているフォルダは、";
$b = hidemarudir;
$c = $a + $b;
message $c;
endmacro;
// (ここまで)
・論理演算子の例
// 論理演算子のマクロ例(ここから)
// 現在のカーソル位置の文字種を判定します。
#c = code;
if (#c > 0xff) {
message "2バイト文字です";
} else if (#c == 32) {
message "半角スペースです";
} else if ((#c >= 0x41) && (#c <= 0x5a)) {
// #cが41(16進)以上、かつ#cが5a(16進)以下
message "半角アルファベットの大文字です";
} else {
message "その他の1バイト文字です";
}
endmacro;
// (ここまで)
比較演算子は文字変数に対しても使うことができます。
// 論理演算子のマクロ例2(ここから)
// 現在のカーソル位置の文字種を判定します。
$c = char(code);
if ($c == " ") {
message "半角スペースです";
} else if (($c >= "A") && ($c <= "Z")) {
message "半角アルファベットの大文字です";
} else {
message "その他の文字です";
}
endmacro;
// (ここまで)
・ビット演算子の例
// ビット演算子の例(ここから)
// 現在の文字コードを判定します。
#c = charset & 63;
if ((#c == 0) || (#c == 1)) {
message "SHIFT-JISです";
} else {
message "SHIFT-JIS以外の文字コードです";
}
endmacro;
// (ここまで)
|
|