MOVE是cobol程序中最常见的语句,类似于java中的set语句。
单个数据项的复制
01 IN-STATUS PIC X(5).
01 IN-GRP.
05 IN-DATA1 PIC x(4).
05 IN-DATA2 PIC X(3).
01 OUT-STATUS PIC PIC X(5).
复制单个数据项讲源数据放在之前,TO连接复制之后数据。可以复制特定的值,也可以变量之间进行设值。
MOVE 'READY' TO IN-STATUS
MOVE IN-STATUS TO OUT-STATUS
如果两个数据源名称相同,需要指定各数据项所在的组。
01 IN-GRP.
05 IN-DATA1 PIC x(4).
05 IN-DATA2 PIC X(3).
01 OUT-GRP.
05 IN-DATA1 PIC x(4).
05 IN-DATA2 PIC X(3).
MOVE IN-DATA1 IN IN-GRP
TO IN-DATA1 IN OUT-GRP.
复制不同类型和长度的单个数据项
- 任何数据类型到可以复制道字符数据变量中
- 数据类型的值可以复制到任何类型的数据中
如果长度不一致
如果复制对象是字符
- 目标数据长度大于源数据,则目标数据的右边以空格填充
- 如果小于源数据长度,则右边超出部门进行截断
如果复制的是数据
- 目标数据长度大于源数据,高位以0填充
- 如果小于源数据长度,则对高位进行截断
- 如果包含浮点数,则分开处理
复制一组数据
数据组和数据组的复制,类似于java中的设置。
- 组内数据不许同名
- 组内数据任意
- 以FILLER命名的数组项不会被复制