|
colderさん、
>[\x87\x8D-\x87\x9B]でどう
colderさん、ありがとうございます。
下記マクロのようにしたらうまくいきました。
13区の ≒ ≡ ∫ √ ⊥ ∠ ∵ ∩ ∪
の内 ≒ ≡ ∫ √ ⊥ ∠ ∵ ∩ ∪
が2区にもあってWindow 上は2区のコードになるということのようですね。確かにshi
ft-JIS文字コード表(http://charset.7jp.net/sjis.html)
の文字をそれぞれ秀丸エディターにコピペして文字コード表示(私の場合ctrl+shift
+M)させるとどちらも2区のコードになってますね。
∫はよく使うので何で同じコードが shift-JISに2つもあるのかと思ってました。
質問:今でもNECのPCだけは環境依存文字とかいって独自なんでしょうか?
例えば"@"[0x8740]は変換キーを押すと環境依存文字の表示が出ますが、NECのPCを
使っている人のことを考えた場合、
@-Sから~-盾煌ワめ13区の文字は他の人にも利用される可能性のあるマクロでは使
用しない方がよいということになりますか?
//サンプル マクロ//////////////////////////////////////////////////////////////
//shift-JIS 文字コード表の並び: 香@氏@潤@≒ ≡ ∫ 刀@煤@√ ⊥ ∠
凵@∵ ∩ ∪
loaddll "hmjre.dll";
$$str = "abcdあ順香";
##pos = dllfunc("FindRegular", "[\x87\x8D-\x87\x9B]+", $$str, 0);//[-∩]
コード表によると∩は0x879Bのようです。
question "@ ○\n##pos = " + str(##pos) + "\n文字 = " + midstr($$str, ##pos,
dllfunc("GetLastMatchLength"));
if(!result) endmacro;
##pos = dllfunc("FindRegular", "[\x87\x8F-\x87\X90]+", $$str, 0);//[-≒]
question "A ○\n##pos = " + str(##pos) + "\n文字 = " + midstr($$str, ##pos,
dllfunc("GetLastMatchLength"));
if(!result) endmacro;
##pos = dllfunc("FindRegular", "[\x87\x8F-\x87\x8F]+", $$str, 0);//[-従
question "B ○\n##pos = " + str(##pos) + "\n文字 = " + midstr($$str, ##pos,
dllfunc("GetLastMatchLength"));
if(!result) endmacro;
##pos = dllfunc("FindRegular", "[\x81\xE0-\x81\xE0]+", $$str, 0);//[≒-≒]
[\x87\x90-\x87\x90]だと×
question "C ○\n##pos = " + str(##pos) + "\n文字 = " + midstr($$str, ##pos,
dllfunc("GetLastMatchLength"));
if(!result) endmacro;
##pos = dllfunc("FindRegular", "[\x82\xA0-\x82\xA0]+", $$str, 0);//[あ-あ]
question "D ○\n##pos = " + str(##pos) + "\n文字 = " + midstr($$str, ##pos,
dllfunc("GetLastMatchLength"));
if(!result) endmacro;
##pos = dllfunc("FindRegular", "[\x61-\x62]+", $$str, 0);//[a-b]
question "E ○ \n##pos = " + str(##pos) + "\n文字 = " + midstr($$str, ##pos,
dllfunc("GetLastMatchLength"));
if(!result) endmacro;
endmacro;
//サンプル マクロ 終わり//////////////////////////////////////
|
|