last updated:2021/06/03

←前へ 次へ→ 機能別Q&A 質問番号順Q&A


[HMM0070A]

●入力チェック、変数チェックを簡単に行う方法

Q.
入力チェック、変数のチェックを行うとき ifの文が複雑になります。それをできるマクロの関数はありますか ?

A.

チェック専用の関数はありませんが、入力チェックをするときに、色々な値がある場合には、 ifで strstr 関数を使用すると文が簡単になります。

// a1.mac ---------------------
$wk1 = input("血液型を入力してください!","");
if( $wk1 == "O" || $wk1 == "A" || $wk1 == "B" || $wk1 == "AB" ){

    message "血液型 : " + $wk1;

} else {

    message "間違った血液型です !";

}
endmacro;
// (ここまで)-----------------------------------------------


// a2.mac ---------------------
$wk1 = input("血液型を入力してください!","");
if( strstr("|O|A|B|AB|","|"+$wk1+"|") != -1 ){

    message "血液型 : " + $wk1;

} else {

    message "間違った血液型です !";

}
endmacro;
// (ここまで)-----------------------------------------------

この a1.mac と a2.mac は同じ結果となります。"|" は、一般的には区切文字(区切記号)と呼ばれ、入力文字としてありえない文字を使用すると文が見やすくなります。全角文字(Shift_JIS の場合) を処理するときには、! - / などの 0x40 (16 進数)より小さな文字を区切文字にします。

全角半角の文字が混在するときは完璧なチェック方法にはなりませんが、実用レベルには耐えるでしょう。


←前へ 次へ→ 機能別Q&A 質問番号順Q&A