全角半角判定
 全角か半角か判断する命令を自作してみました。NScripterでは恐らくShift JISを使っているだろうという前提で作っているので、もしかしたら間違った値が出るかもしれません。

*isZenkaku
getparam i%0,$0
cmp %1,$0,"。"
cmp %2,$0,"゚"
cmp %3,$0,"、"
if %3 < 0 mov %%0,0
if %3 >= 0 mov %%0,1
if %3 >= 0 && %1 >= 0 && %2 <= 0 mov %%0,0
return

 名前が変だという突っ込みは無しの方向で。
 「isZenkaku 数字変数、文字列」という形で使います。文字列が全角なら1を、半角なら0を数字変数に返します。全角半角混合の文字列を指定した場合、最初の一文字目で判断するはずです。まぁNScripterで全角半角混ぜて使うことなんて稀だと思うので大丈夫だと思いますが……。
 この命令を使えば、lenを上書きして全角対応lenにすることも可能です。lenに全角文字を指定すると実際の文字数×2の値が返ってきますからね。

 (1月22日修正)半角カナで1が返っていた問題を修正。
 (1月22日追記)本家からダウンロードできるようにしました。Delusionist's Utopia > NScripterよりどうぞ。
[PR]
by lyricist_m | 2007-01-22 19:00 | NScripter
<< 全角半角判定(2) 一部音楽が鳴らないバグを修正 >>