ページの先頭行へ戻る
Interstage Charset Manager Standard Edition V9 システム構築ガイド バリデーション編
FUJITSU Software

B.1 C言語インタフェース

int my_ucs2le_validator( const char *ucs2str, int ucs2str_length, int *bValid ) {
    int err = 0; // エラー情報
    charsetmanager_validator_property_ptr cvpp = NULL; // バリデーション情報格納領域
    charsetmanager_validator_error_status status;      // 詳細エラー情報

    if( NULL == ( cvpp = charsetmanager_validator_open("UTF-16LE", &err ) ) )
                                                       // Validationの開始
        return(-1);                                    // Validation開始のエラー
    if( 0 != charsetmanager_validator_set_policy_file( cvpp, "UCS2.policy", &err )) {
                                                       // バリデーションポリシーを設定
        charsetmanager_validator_close( cvpp, &err );
        return(-2);                                    // ポリシー設定のエラー
    }
    // バリデーションの実行
    if( 0 == charsetmanager_validator_validate(cvpp,
                                               ucs2str,
                                               ucs2str_length,
                                               NULL,
                                               &status,
                                               &err) )
        *bValid = 1;                                   // 文字列は有効
    else if(CHARSETMANAGER_VALIDATOR_ERROR_CODE_INVALID == err ) { 
                                                       // 無効文字あり
        printf( "String is not valid. index = %d, length = %d\n",
                status.index,
                status.invalidcodelen );
        *bValid = 0;
    }
    else {                                             // その他のエラー
        charsetmanager_validator_close( cvpp, &err );
        return(-3);
    }
    charsetmanager_validator_close( cvpp, &err );      // Validationの終了
    return 0;
}