LXRPIA23 混在文字列チェック
サブルーチンID |
機能分類 |
サブルーチン名 |
テーブル名 |
---|---|---|---|
LXRPIA23 |
文字列処理 |
LXRCIA23 |
インタフェース
入力(区分:INPUT-PARM=I,CONSTANT=C) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
I-LGC-LENG |
P(3) |
論理長さ |
C |
03 |
I-PHSC-LENG |
P(3) |
物理長さ |
IL |
03 |
I-STR |
X(200) |
文字列 |
I |
03 |
I-SHR-KBN |
X(1) |
処理区分 |
C |
− |
− |
− |
− |
− |
出力(区分:OUTPUT-PARM=O,RTN-CODE=R) |
||||
---|---|---|---|---|
レベル |
項目名 |
属性 |
説明および設定値 |
区分 |
03 |
O-RTN-CD |
X(10) |
リターンコード |
R |
− |
− |
− |
SPACE:正常 |
− |
− |
− |
− |
LXREA024:NUMERIC エラー |
− |
− |
− |
− |
LXREA020:入力長が範囲外 |
− |
− |
− |
− |
LXREA008:入力文字列がスペース |
− |
− |
− |
− |
LXREA022:入力論理長誤り |
− |
− |
− |
− |
LXREA021:入力物理長誤り |
− |
− |
− |
− |
LXREA023:機能キャラクタ誤り |
− |
処理基準
PC・UNIX版
-
NUMERICチェック,長さ範囲チェック,スペースチェックだけ行う。
VOS3版
-
次のチェックを行い,該当するエラーコードまたはスペースをリターンコードに返す。
1.1 入力文字列の論理長と物理長が,入力論理長,入力物理長を超えていないことをチェックする。
1.2 入力文字列の中で,X'0A42'がある(KEIS状態になる)と,その後方にはX'0A42'よりも前に
必ず1つ以上のX'0A41'がある(EBCDIK状態に戻る)ことをチェックする。
1.3 処理区分が'N'の場合,入力文字列の先頭からX'0A41'の直前までの文字と,X'0A42'〜X'0A41'間
の文字に対してKEISコードチェックを行う。
1.4 項番1.3のKEISコードチェックで,対象となる文字列が奇数個である場合エラーとなり,リター
ンコードに'LXREB001'を返す。
1.5 処理区分が'N'以外の場合,入力文字列の先頭からX'0A42'の直前までの文字と,X'0A42'〜X'0A41'
間の文字に対してEBCDIKコードチェックを行う。
例1
I-LGC-LENG :6 I-PHSC-LENG:5 I-STR :X'414243444546' ↓ O-RTN-CD :'LXREA021'
例2
I-LGC-LENG :5 I-PHSC-LENG:1 I-STR :X'0A42A1A10A42' ↓ O-RTN-CD :'LXREA022'
例3
I-LGC-LENG :4 I-PHSC-LENG:2 I-STR :X'0A42A1A1' ↓ O-RTN-CD :'LXREA023'
注意事項
-
入力論理長,入力物理長の妥当性をチェックし,該当するリターンコードを返す。
-
KEISコードチェックで,エラーと判明した場合,'LXREB001'をリターンコードに転送する。
-
EBCDIKコードチェックで,エラーと判明した場合,'LXREA007'をリターンコードに転送する。
-
このサブルーチンから(文字コードチェック:LXRPIA01),(文字列有効桁数算出:LXRPIA09),(漢字コードチェック:LXRPIB01)を呼び出す。
-
X'40'は,KEISコードチェックの対象となる文字列中に,奇数個存在することを許される。