ページの先頭行へ戻る
NetCOBOL V11.0 入門ガイド
FUJITSU Software

5.8.1 10進項目

10進項目の入力

10進項目に誤ったビットパターンが入った場合

誤ったプログラム例

英数字項目から数字項目の転記は数字転記になり、英数字項目を符号なし10進項目にみなして転記します。よって、(a)のSND-DATAはPIC 9(4)とみなし翻訳されます。空白が入っている場合などの不正な値は誤りとなり、結果は予測できません。(a)のMOVE文が予測できないため、(b)の比較結果も予測できません。

      01 SND-DATA PIC X(4).
      01 RSV-DATA PIC 9(4).
      ...
         MOVE  SPACE  TO  SND-DATA
         ...
         MOVE  SND-DATA  TO  RSV-DATA  …(a)
         IF  RSV-DATA  =  SPACE  THEN  …(b)

正しいプログラム例

10進項目に不正な値が設定される可能性がある場合は、(c)のように字類条件(IS NUMERIC)を使用し、正しい値が格納されていることを確認してから使用します。

      01 SND-DATA PIC X(4).
      01 RSV-DATA PIC 9(4).
      ...
         MOVE  SPACE  TO  SND-DATA
         MOVE   0     TO  RSV-DATA
         ...
         IF SND-DATA IS NUMERIC THEN     …(c)
           MOVE  SND-DATA  TO  RSV-DATA
         ELSE
           DISPLAY NC"データ異常" SND-DATA
         END-IF