Hitachi

SEWB+/標準サブルーチン ライブラリリファレンス


LXRPIA26 数字チェック/数値変換

サブルーチンID

機能分類

サブルーチン名

テーブル名

LXRPIA26

項目編集

数字チェック/数値変換

LXRCIA26

〈このページの構成〉

インタフェース

入力(区分:INPUT-PARM=I,CONSTANT=C)

レベル

項目名

属性

説明および設定値

区分

03

I-LENG

P(2)

長さ

IL

03

I-STR-NU

X(18)

文字列(数字)

I

03

I-CHK-PARM

X(50)

チェック条件パラメータ

C

'ENT=入力モード指定'

(詳細はLXRPIZ11およびLXRPIA27の補足説明を参照のこと)

出力(区分:OUTPUT-PARM=O,RTN-CODE=R)

レベル

項目名

属性

説明および設定値

区分

03

O-NUM

9(18)

数値

O

03

O-RTN-CD

X(10)

リターンコード

R

SPACE:正常終了

LXREA024:NUMERICエラー

LXREA020:入力長が範囲外

LXREA008:入力文字列がスペース

LXREA027:全桁満たされていない

LXREA026:指定以外の文字あり

処理基準

  1. 注意事項1.〜3.に従ってチェックする。

  2. I-STR-NUを次のように変換した結果を作業領域W-STR-NU-1,W-STR-NU-2(共にPIC X(18))にセットする。

    2.1 LOW-VALUEをSPACEに置き換えて,その結果をW-STR-NU-1にセットする。

    2.2 さらに右詰め処理を行い,前方のSPACEを'0'に置き換えた結果をW-STR-NU-2にセットする。

  3. I-CHK-PARMに'ENT=MENT'または'ENT=MFILL'の指定があり,かつW-STR-NU-1がSPACEの時,O-NUMに0を,O-RTN-CDに'LXREA008'を返す。

  4. そのほかの時,次の処理を行う。

    4.1 I-CHK-PARMに'ENT=MFILL'の指定があり,かつI-LENGがW-STR-NU-1の有効桁数より大

      きい時,O-NUMに0を,O-RTN-CDに'LXREA027'を返す。

    4.2 そのほかの時,W-STR-NU-2に対してNUMERICチェックを行う。

     4.2.1 エラーの時,O-NUMに0を,O-RTN-CDに'LXREA026'を返す。

     4.2.2 エラーでない時,W-STR-NU-2をO-NUMに転送し,O-RTN-CDにSPACEを返す。

例1

 I-LENG    :6
 I-STR-NU  :'△123△△'
 I-CHK-PARM:'ENT=MENT'
 ↓
 O-NUM     :123
 O-RTN-CD  :SPACE

例2

 I-LENG    :2
 I-STR-NU  :'△123456'
 I-CHK-PARM:'ENT=MNENT'
 ↓
 O-NUM     :123456
 O-RTN-CD  :SPACE

例3

 I-LENG    :6
 I-STR-NU  :'123△△△'
 I-CHK-PARM:'ENT=MFILL'
 ↓
 O-NUM     :0
 O-RTN-CD  :'LXREA027'

注意事項

  1. I-LENGについてNUMERICチェックを行い,数値でないときはリターンコードに'LXREA024'を返す。O-NUMには0を返す。

  2. 1≦I-LENG≦18でなければリターンコードに'LXREA020'を返す。O-NUMには0を返す。

  3. (パラメータ解析:LXRPIZ11)を呼び出してI-CHK-PARMをチェックする。エラーの時は,リターンコードをそのまま返し,O-NUMには0を返す。

  4. I-LENGがW-STR-NU-1の有効桁数より小さくても,数値変換の結果は切り捨てない。

  5. I-STR-NUの中のLOW-VALUEは,半角空白と同様に扱う。

  6. このサブルーチンから,3.のほかに(文字列右詰め:LXRPIA07),(文字列有効桁数算出:LXRPIA09)を呼び出す。