[HMM0068A]
●マクロ中の演算子の意味は?
秀丸マクロに使える演算子がヘルプに書いてありますが、私はC言語を知らないので、演算子の意味がわかりません。(^^;) | |
以下の表とマクロ例を参考にしてみてください。
|
算術演算子 + 加算 - 減算 * 乗算 / 除算(商) % 剰余(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進)以下} else {
message "半角アルファベットの大文字です";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;
// (ここまで)