IFステートメントでSPACE、ZEROのキーワードは指定できるか? SPACE、ZEROキーワードの使用方法は?

Document created by Masaaki_Iyama Employee on Jun 19, 2015Last modified by Masaaki_Iyama Employee on Jun 19, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC000996

製品名: CA-Easytrieve Plus

バージョン: ALL

OS: z/OS, MSP, VOS3

 

Question

IFステートメントでSPACE、ZEROのキーワードは指定できるか?

SPACE、ZEROキーワードの使用方法は? 

 

Answer

以下のとおり使用可能です。

フィールドのすべての位置にスペースまたはゼロが含まれているかどうかの判断は データ属性チェックという機能を使用して行います。

 

[データ属性チェックの記述]

                                               (主  語)                              (目的語)

  IF                                      フィールド名       [ NOT ]             SPACE

  DO WHILE                                                                         SPACES 

  RETRIEVE...WHILE                                                              ZERO

                                                                                         ZEROS

                                                                                          ZEROES

                                                                                   ↑  

                                                        '='記号は必要ありません

                                           

SPACE、SPACESまたは、ZERO、ZEROS、ZEROESはそれぞれどのキーワードを指定してもかまいません。

 

ワーク・フィールドの定義でVALUEパラメータのあとに、「VALUE SPACE」「VALUE ZERO」と指定することはできません。

誤)                                                                  正)

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

        PRINT

   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

Attachments

    Outcomes