←前へ 次へ→
機能別Ｑ＆Ａ 質問番号順Ｑ＆Ａ 目次

# [HMM0072A]

## ●２バイト文字の判断方法

  カーソル位置にある文字が、１バイト文字か２バイト文字かを判断するにはどうしたらいいでしょうか？

  秀丸エディタの内部キーワード「code」を使い、ビット演算を使って２バイト文字かどうかを判断できます。

      // サンプルマクロ（ここから）
      #Code = code;
      if( #Code == 0 )
      { // フリーカーソルで改行以降
          message "改行以降";
      }
      else if( #Code == 0x09 )
      { // タブ
          message "タブ";
      }
      else if( #Code == 0x0d )
      { // 改行
          message "改行";
      }
      else if( #Code == eof )
      { // EOF
          message "EOF";
      }
      else if( ( code & 0xff00 ) != 0 )
      { // ２バイト文字
          message "２バイト文字";
      }
      else
      {
          message "１バイト文字";
      }
      endmacro;
      // サンプルマクロ（ここまで）

  文字列変数の中の文字列をバイト単位ではなく文字単位で扱いたい場合は、 [HMM0073A]●文字列をバイト単位ではなく文字単位で扱うを参照して下さい。

  [補足]
    `code` は基本的に、Shift_JISを返します。unicodeにあり、Shift_JISにない文字の場合は、`code`は"0"を返します。

←前へ 次へ→
機能別Ｑ＆Ａ 質問番号順Ｑ＆Ａ 目次