LXRPIA24 混在文字列チェック(含外字)
サブルーチンID |
機能分類 |
サブルーチン名 |
テーブル名 |
---|---|---|---|
LXRPIA24 |
文字列処理 |
LXRCIA24 |
インタフェース
入力(区分: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 処理区分が'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コードチェックで,エラーと判明した場合,'LXREB006'をリターンコードに転送する。
-
EBCDIKコードチェックで,エラーと判明した場合,'LXREA007'をリターンコードに転送する。
-
このサブルーチンから(文字コードチェック:LXRPIA01),(文字列有効桁数算出:LXRPIA09),(漢字コードチェック(含外字):LXRPIB02)を呼び出す。
-
X'40'は,KEISコードチェックの対象となる文字列中に,奇数個存在することを許される。