| 2018/06/24(Sun) 09:59:39 編集(投稿者) 2018/06/24(Sun) 09:44:42 編集(投稿者)
医薬品名として例えば「ハルシオン0.25mg錠」があったとする。(1) これを半角で「ハルシオン0.25mg錠」としてはエラーになってしまう。 しばしば半角カナで入力してくれる人がいる。(2) 「ハルシオン0.25mg錠」はOK。(3)
できれば(3)の形にしたい。つまり、半角カナのみを全角にし、英数字は半角のまま。 これってかなり面倒ですね。 過去ログでもたまに話題になってるし、自分も殆ど忘れていたが2005年に力技で作った ものをDLコーナー112で上げていたりしている。 余談ながら何故その年を覚えているかというと、それを上げた直後に、私は1ヶ月ほど 入院していて、ネット断絶状態になっておりまして。 退院後しばらくしてから覗いてみたらバグの報告を戴いていて、対応する気力体力もなく 放置してしまったから。なぜなら当時は田舎の店を畳むことにしてたから。
閑話休題。
ともかくこんな力技を使う気にもならないので、この点は次のように対応しようと考えています。 カナ・英数字に関わらず、テキスト叙述部は強制的に全角に変換してしまう。
if(#IS半角([当該項目],0)>0) 行訂正 終了状態=&終了,[当該項目]=#全角([当該項目]) end
あるいは入力途中で対処するなら「入力後」イベントで
手続き定義開始 某テキスト::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続) if(#IS半角(&編集文字列,0)>0) *確認 "半角文字は使うな" 的にメッセージを出してもいいけど、手抜きで問答無用に &編集文字列=#全角(&編集文字列) &入力継続=0 end 手続き定義終了
で走ってみるとか(未検証) と考えてみたのですが、もっとうまい方法ありませんか?
ps. 一部字句訂正 ×&編集文字数=#全角(&編集文字列) ○&編集文字列=#全角(&編集文字列)
入力後イベントで実働させてみたらエラーが出て気づきました。(^^;)
|