【第87回】ロータス博士のWinActor塾~全角化/半角化
実はこれまで使いどころを解説していない基本ノードがあってのう。
「全角化/半角化」ですよね!
タイトル読んできました!
何そのノード!?って感じでサプライズする予定じゃったが・・・
確かにタイトルにガッツリ書いてある。
これじゃドッキリもできんな。ロータス君はひっかけやすそうなんじゃが。
いやいや、何について悩んでるんですか博士。
あ、でも使うタイミング全くわからないです。
このノード要ります?
実はとっておきの使い方があるんじゃよ。
今回は使い方も含めてこのノードを紹介しよう。
全角化/半角化ノード
全角化/半角化
全角化/半角化ノードは、指定の変数に格納されている文字列を全角から半角、または半角から全角に変換します。
ノードは以下の場所に格納されています。
ノード > 変数 > 全角化/半角化
プロパティには、変換対象の変数を選択するプルダウンと
半角に変換するか全角に変換するかを選ぶラジオボタンがあります。
どちらも必須項目です。
変換結果
実際に使用して、全角で入力されたデータを半角に変換してみます。
まずデータが入力されて変数に格納したという想定で、次の初期値を持つ変数を用意します。
これを「全角化/半角化」ノードに設定しましょう。
今回は全角から半角へ変換したいので、ラジオボタンは半角化を選択します。
結果は次のようになります。
全角化や半角化の使い道
まだいまいち使い方については思いつかないんですよね。
本当に使い道あるんですか?
実はこういった文字列変換系は比較の際に威力を発揮するのじゃ。
次のようなケースを想定してみよう。
例えば、商品管理のシステムを操作する際に、ユーザが任意で入力した製品コードをもとに処理を分岐させるとします。
コードが「ABC」の場合にtrue、そうでない場合にfalseとなるように分岐させるとしたら、条件はどのようになるでしょうか。
これは簡単ですよ。
答えはこれです!
今の時点では間違いではないのう。
じゃが、ユーザの入力は半角の場合もあるとするとどうじゃ?
半角の場合も条件に合うように・・・こ、こうかな?
うーむ、分岐の使い方としては悪くない。
しかしこれでは大変じゃぞ。
ユーザは必ずしもすべて全角、すべて半角で入力するとは限らないのです。
常識で考えるとそのような入力をする人はいませんが、誤操作などで意図せず全角が含まれてしまったりするかもしれません。
インプットに制限をかけていない場合はそういったところをケアすることで、シナリオの安定化が図れます。
今回の例でいうと、入力パターンは
ABC
ABC
ABC
ABC
ABC
ABC
ABC
ABC
(わかりやすいように全角文字を赤色にしています)
このように、たった3文字でもかなりのパターン数になります。
これを分岐に全部いれるとなると現実的でないことがわかります。
確かに・・・シナリオ側で入力データの全角半角混じりをケアするとなると
分岐で全パターン網羅するのは無理ですね・・・。
そうなのじゃ。
そこで登場するのがこの「全角化/半角化」ノードという訳なんじゃよ。
今回のように、全角文字や半角文字が混ざっているかも知れないデータで比較や分岐を行いたい場合は
その処理を行う直前に、データを全角か半角のどちらかに統一するとよいでしょう。
例えば分岐ノードでの判定前に全角化をしておけば
入力された元のデータのBだけが半角だった場合でも、Aだけが半角だった場合でも関係なく次の条件だけで判定することができます。
ほー、全角か半角のどっちかに変換して統一することで
条件がひとつで済むようになると・・・。
うむ。まあ想定外のデータが入ってきた場合は全てエラーで停止させてもよいが
全角半角の違いが1文字混ざっただけでシナリオを止めるのはもったいない。
このように工夫をすることで、シナリオが継続できるようになることもあるのじゃ。
覚えておいて損はないぞ。
なんだか今日はためになりました。
しかも頭にすっと入る内容でスッキリ。
心置きなく塾終われますね。
こんなにスムーズに終わるなんて。
というか毎回心残りがあるみたいな言い方やめてくれんか・・・。終わるけども。
ということでまた次回!さよならじゃ!
関連記事こちらの記事も合わせてどうぞ。
2024.11.05
【第105回】ロータス博士のWinActor塾~新しい画像マッチング画面
2024.09.27
【第104回】ロータス博士のWinActor塾~ガイド利用シナリオ(作成編)
2024.09.10