Answer
以下のとおり使用可能です。
フィールドのすべての位置にスペースまたはゼロが含まれているかどうかの判断は データ属性チェックという機能を使用して行います。
[データ属性チェックの記述]
(主 語) (目的語)
IF フィールド名 [ NOT ] SPACE
DO WHILE SPACES
RETRIEVE...WHILE ZERO
ZEROS
ZEROES
FLD1 S 5 P 0 VALUE ZERO FLD1 S 5 P 0 VALUE 0
FLD2 S 5 A VALUE SPACE FLD2 S 5 A VALUE ' '
MOVEステートメントでは、移送データの指定にSPACE、ZEROキーワードを使用できます。この場合、複数の受け取りフィールドを指定できます。
記述例
(例1) 入力レコードのキーの値がスペースでなければそのままのデータを、スペースの場合はスペース・データをファイルに出力し、結果をリスト・アウトする。
FILE FILEA
KEY-A 1 4 A
*
FILE FILEB
KEY-B 1 4 A
FLD-1 5 5 A
FLD-2 10 14 A
*
JOB
IF KEY-A NOT SPACE
MOVE LIKE FILEA TO FILEB
ELSE
MOVE SPACE TO KEY-B FLD-1 FLD-2
END-IF
PUT FILEB
*
REPORT
TITLE 1 '*** ファイル更新リスト ***'
LINE 1 FILEA:RECORD-COUNT KEY-A
(例2) IFステートメント、MOVEステートメントにおける「SPACE」「ZERO」の使用例
誤) 正)
IF FLD1 = SPACE IF FLD1 SPACE
IF FLD1 NE SPACE IF FLD1 NOT SPACE
IF FLD1 = ZERO IF FLD1 ZERO
IF FLD1 NE ZERO IF FLD1 NOT ZERO
MOVE ' ' TO FLD1 FLD2 FLD3 MOVE SPACE TO FLD1 FLD2 FLD3
MOVE 0 TO FLD1 FLD2 FLD3 MOVE ZERO TO FLD1 FLD2 FLD3