文字

Q2
文字種別の判定
[内容]
文字列に含まれている文字種別を判定するにはどのように記述するのか


 ・全ての文字が半角英数字か
 ・先頭が"-"(半角ハイフン)で残りすべてが半角英数字か など

A2
[解決方法]
通常はInputModeにおいて文字を制限します。 その他、グローバル関数、関数記述による判定が行えます。

Ver4.0ではRegexPattern/RegexMatcherやMaskEditを利用することも可能です。
Biz-Tips > RegexPattern/RegexMatcher > フォーマットチェック 、
Biz-Tips > MaskEdit をご参照ください。


[サンプルコード]
関数記述例1(数字であるかのチェック)
Function chk_num( a ){
/* 数字であるかのチェック */
    number i;
    number s;
    ret = 0;
    s = length(a);
    for(i = 0; i < s; i = i+1){
        if(val(mid(a, i, 1)) == 0){
            if(mid(a, i, 1) !="0"){
                ret = i+1;
                break;
            }
        }
    }
}
・呼び元
chk_num(Form0.txt_nensu_max);
if (ret != 0){
    msg = "数値以外は入力できません。";
    Messagebox(msg,"エラー",$OK);
    Form0.txt_nensu_max.SetFocus();
    return;
}

◆関数記述例2(入力文字の半角チェック)
Function chk_hankaku(a){
/* 入力文字が半角であるかのチェック 0:TRUE 1:FALSE */
    number s;
    number l;
    ret = 0;
    s = length(a);
    l = length(a,1);
    if(s == l){
        ret = 0;
    } else {
        ret = 1;
    }
}
・呼び元
chk_hankaku(Form0.txt_eq_no);
if (ret != 0){
    msg = "全角文字は入力できません。";
    Messagebox(msg,"エラー",$OK);
    Form0.txt_eq_no.SetFocus();
    return;
}

◆関数記述例3(入力文字が空白かのチェック)
Function chk_kuhaku( a ) {
/* 入力文字が空白(半角、全角)であるかのチェック 1:TRUE 0:FALSE */
    number i;
    number s;
    number k;
    string buf; 
    ret = 0;
    buf = "";
    buf = buf + " ";  /*半角カナ*/ 
    buf = buf + " ";  /*全角カナ*/
    s = length(a);
    for(i = 0; i >s; i = i+1){
        for(k=0; k < length(buf); k=k+1){
            if(mid(a, i, 1) == mid(buf, k, 1)){
                ret = 1;
                return;
            }
        }
    }
}
・呼び元
chk_kuhaku(Form0.txt_kana);
if (ret != 0){
    msg = "空白は入力できません。";
    Messagebox(msg,"エラー",$OK);
    Form0.txt_kana.SetFocus();
    return;
}

CRSファイル形式のサンプルを
  「文字種別の判定サンプル(Wrd_002.zip)
よりご利用いただけます。

管理番号:Wrd _002
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ