通过MOVE语句的复制操作,可以实现变量的赋值,参数传递的功能。
1.单个数据复制时,直接将源数据名称放到前面,将目标数据项放到后面。通过TO连接。
如:
MOVE '12' TO A.
MOVE '34' TO B.
当进行复制操作的两个数据名称相同时,要指明数据项所在的数据组名。
如:
MOVE DAY TO IN DATA1 TO DAY IN DATA2.
MOVE YEAR IN DATA3 TO YEAR IN DATA4.
2.复制不同长度的类型和长度的单个数据项。
任何类型都可以复制到字符类型数据变量中。
数值类型数据可复制到任何类型数据变量中。
如:
IDENTIFICATION DIVISION.
PROGRAM-ID. MOVE2.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 INT-DATA PIC 9(5).
01 CHAR-DATA PIC X(5).
01 EDIT-DATA PIC $$$$9.
PROCEDURE DIVISION.
MOVE 12345 TO IN-DATA.
MOVE INT-DATA TO CHAR-DATA.
MOVE INT-DATA TO EDIT-DATA.
MOVE EDIT-DATA TO CHAR-DATA.
DISPLAY 'INT-DATA :' INT-DATA.
DISPLAY 'EDIT-DATA:' EDIT-DATA.
DISPLAY 'CHAR-DATA:' CHAR-DATA.
STOP RUN.
运行结果,都是12345。
当复制对象为字符型数据时,将从左到右依次复制。
目标数据项长度大于源数据长度时,在目标数据项的右边以空格填充。
目标数据项长度小于源数据长度时,对右边超出部分进行截取。
如:
IDENTIFICATION DIVISION.
PROGRAM-ID. MOVE3.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SOURCE-DATA PIC X (5).
01 LONG-DATA PIC X (8).
01 SHORT-DATA PIC X(3).
PROCEDURE DIVISION.
MOVE 'LIANG' TO SOURCE-DATA.
MOVE SOURCE-DATA TO LONG-DATA.
MOVE SOURCE-DATA TO SHORT-DATA.
DISPLAY 'SOURCE-DATA:' SOURCE-DATA.
DISPLAY'LONG-DATA:' LONG-DATA.
DISPLAY'SHORT-DATA:' SHORT-DATA.
STOP RUN.
运行结果:
SOURCE-DATA: LIANG
LONG-DATA.: LIANG 后面有3个空格。
SHORT-DATA: LIA
当复制对象为数值型时,则,
目标数据项长度大于源数据长度时,在目标数据项的高位以0填充。
目标数据项长度小于源数据长度时,对高位超出部分进行截取。
若数值含有小数部分,则需要将其作为符点数进行相应的处理。
如:
IDENTIFICATION DIVISION.
PROGRAM-ID. MOVE4.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 SOURCE-DATA PIC 9(5).
01 LONG-DATA PIC 9(8).
01 SHORT-DATA PIC 9(3).
01 FLOAT-DATA PIC 9(3)V99. V是隐含的小数位。v左边是整数位,按数值的靠左的方法输出。 v右边是小数位,按正常的输出!
01 FLOAT-DATA1 PIC 9(4)V9(3).
01 FLOAT-DATA2 PIC 99V99.
PROCEDURE DIVISION.
MOVE '54321' TO SOURCE-DATA.
MOVE SOURCE-DATA TO LONG-DATA.
MOVE SOURCE-DATA TO SHORT-DATA.
MOVE SOURCE-DATA TO FLOAT-DATA.
MOVE 543.21 TO FLOAT-DATA1.
MOVE 543.21 TO FLOAT-DATA2.
DISPLAY 'SOURCE-DATA:' SOURCE-DATA.
DISPLAY 'LONG-DATA:' LONG-DATA.
DISPLAY 'SHORT-DATA:' SHORT-DATA.
DISPALY 'FLOAT-DATA:' FLOAT-DATA.
DISPLAY 'FLOAT-DATA1:' FLOAT-DATA1.
DISPLAY 'FLOAT-DATA2:' FLOAT-DATA2.
STOP RUN.
运行结果:
SOURCE-DATA: 54321
LONG-DATA : 00054321
SHORT-DATA: 321
FLOAT-DATA: 32100
FLOAT-DATA1: 0543210
FLOAT-DATA2: 4321