質問: 文字を数値に変換したい 現在、課題でvisualbasic2005を使用してプログラムを作成していますが、一点わからなくて困っています。 何か解決策があれば助けてください。 テキストボックスに文字を入力した際に、 数値に変換(例えば"あ"が入力されたら"1"、"い"だと"2"...etc)のように50音中のあ段は1、い段は2、う段は3...と変換したいのです。 ※テキストボックスは平仮名のみしか入力出来ないように制御してます。 if文で書くと50個プラス濁音・半濁音のプログラムを書くことになるためもっと効率の良い書き方がないかと思い投稿しました。 解決策があれば伝授をお願い致します。
回答: 何か関数で1行で出来ないかと考えたのですが、今手元に別verのvbもないので、vbaで試してます。的外れでしたらごめんなさい。 理屈は、ひらがなをカタカナ変換して、アスキー変換することで濁点を排除し、さらにアスキーコード変換した値で連番を求め、5の剰余で、1から5までの番号を振れると考えました。 (asc(strconv(strconv("あ", 16), 8)) - 177) mod 5 + 1 これならカタカナにも対応でき、完璧かとうぬぼれたのですが、拗音、促音、「を」に関しては別の処理が必要になってしまいましたので、仕様的には失敗です。 同じifを使うなら、理解しにくいコードに何の価値もないですが、せっかくここまで考えたので載せました。失敗例の参考までに。 ちなみに、自分が仕事で必要だとしたらこの方法はおそらく使わず、堅実な ano.1 ano.2 の方法でいきます。(たぶん性格的に ano.2 かな)