バージョン 6.3.3
 —  ステートメント  —

MOVE ALL

MOVE ALL operand1 TO operand2 [UNTIL operand3]

このドキュメントでは、次のトピックについて説明します。

関連ステートメント:ADD | COMPRESS | COMPUTE | DIVIDE | EXAMINE | MOVE | MULTIPLY | RESET | SEPARATE | SUBTRACT

関連機能グループ:「算術演算とデータ移動操作


機能

MOVE ALL ステートメントは、operand1 の値を operand3 がいっぱいになるまで operand2 に繰り返し移動するために使用します。

Top of page

構文説明

オペランド定義テーブル:

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand1 C S       A U N       B             不可
operand2   S A     A U         B            
operand3 C S           N P I                 不可

構文要素の説明:

operand1
ソースオペランド:

ソースオペランドには転送する値が含まれています。

リーディングゼロを含む数値オペランドのすべての桁が転送されます。

TO operand2
ターゲットオペランド:

ターゲットオペランドは、MOVE ALL 処理の前にリセットされません。 このことは UNTIL オプションを使用するときに特に重要です。operand2 にあらかじめ存在していたデータは、MOVE ALL 処理で明確に上書きしないと、そのまま残されるからです。

UNTIL operand3
UNTIL オプション:

UNTIL オプションは operand2 に対する桁数を指定することにより MOVE ALL 処理を制限するために使用します。 Operand3 には桁数を指定します。 MOVE ALL 処理はこの値に達したときに終了します。

operand3operand2 の長さより大きい場合、MOVE ALL 処理は operand2 がいっぱいになったときに終了します。

UNTIL オプションを使用して、ダイナミック変数に初期値を割り当てることもできます。operand2 がダイナミック変数のとき、MOVE ALL 操作後のダイナミック変数の長さは、operand3 の値に対応します。 ダイナミック変数の現在の長さは、システム変数 *LENGTH を使用して確認できます。 ダイナミック変数については、「ダイナミック変数の使用」を参照してください。

Top of page

** Example 'MOAEX1': MOVE ALL                                           
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 PERSONNEL-ID                                                        
  2 FIRST-NAME                                                          
  2 NAME                                                                
  2 CITY                                                                
1 VEH-VIEW VIEW OF VEHICLES                                             
  2 PERSONNEL-ID                                                        
  2 MAKE                                                                
END-DEFINE                                                              
*                                                                       
LIMIT 4                                                                 
RD. READ EMPLOY-VIEW BY NAME                                            
  SUSPEND IDENTICAL SUPPRESS                                            
  /*                                                                    
  FD. FIND VEH-VIEW WITH PERSONNEL-ID = PERSONNEL-ID (RD.)              
    IF NO RECORDS FOUND                                                  
      MOVE ALL '*' TO FIRST-NAME (RD.)        
      MOVE ALL '*' TO CITY (RD.)              
      MOVE ALL '*' TO MAKE (FD.)              
    END-NOREC                                 
    /*                                        
    DISPLAY NOTITLE (ES=OFF IS=ON ZP=ON AL=15)
            NAME (RD.) FIRST-NAME (RD.)       
            CITY (RD.)                        
            MAKE (FD.) (IS=OFF)               
    /*                                        
  END-FIND                                    
END-READ                                      
END                                          

プログラム MOAEX1 の出力:

     NAME         FIRST-NAME         CITY            MAKE      
--------------- --------------- --------------- ---------------
                                                               
ABELLAN         *************** *************** ***************
ACHIESON        ROBERT          DERBY           FORD           
ADAM            *************** *************** ***************
ADKINSON        JEFF            BROOKLYN        GENERAL MOTORS

Top of page