COBOL 基本动词
COBOL动词用于过程部中的数据处理。每个语句总是以COBOL动词开头。有几种具有不同动作类型的COBOL动词。
Input(输入)/Output(输出)动词
输入/输出动词用于从用户获取数据,并显示COBOL程序的输出。下面两个动词用于这一过程:
Accept动词
Accept 动词用于从操作系统或直接从用户获取诸如日期,时间和天等数据。如果程序从用户接收数据,那么就需要通过JCL传递。在从操作系统获取数据时,FROM选项则如下面例子所示:
ACCEPT WS-STUDENT-NAME.
ACCEPT WS-DATE FROM SYSTEM-DATE.
Display动词
Display动词用于显示COBOL程序的输出。
DISPLAY WS-STUDENT-NAME.
DISPLAY "System date is : " WS-DATE.
COBOL程序
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STUDENT-NAME PIC X(25).
01 WS-DATE PIC X(10).
PROCEDURE DIVISION.
ACCEPT WS-DATE FROM DATE.
DISPLAY "Date : " WS-DATE.
STOP RUN.
JCL执行上述COBOL程序:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO
//INPUT DD DSN=PROGRAM.DIRECTORY,DISP=SHR
//SYSIN DD *
TutorialsPoint
/*
当你编译和执行上面的程序,会产生以下结果:
Name : TutorialsPoint
Date : 2014-08-30
Initialize(初始化)动词
Initialize 动词被用来初始化组项或基本项。数据名为RENAME的子句不能被初始化。数字数据项由ZEROES代替。字母数字或字母数据项由SPACES代替。如果我们包含REPLACING术语,则数据项可被初始化为给定替换值,如以下示例所示:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC A(30) VALUE 'ABCDEF'.
01 WS-ID PIC 9(5).
01 WS-ADDRESS.
05 WS-HOUSE-NUMBER PIC 9(3).
05 WS-COUNTRY PIC X(15).
05 WS-PINCODE PIC 9(6) VALUE 123456.
PROCEDURE DIVISION.
A000-FIRST-PARA.
INITIALIZE WS-NAME, WS-ADDRESS.
INITIALIZE WS-ID REPLACING NUMERIC DATA BY 12345.
DISPLAY "My name is : "WS-NAME.
DISPLAY "My ID is : "WS-ID.
DISPLAY "Address : "WS-ADDRESS.
DISPLAY "House Number : "WS-HOUSE-NUMBER.
DISPLAY "Country : "WS-COUNTRY.
DISPLAY "Pincode : "WS-PINCODE.
STOP RUN.
JCL执行上述COBOL程序:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C
//STEP1 EXEC PGM=HELLO
当你编译和执行上面的程序,会产生以下结果:
My name is :
My ID is : 12345
Address : 000 000000
House Number : 000
Country :
Pincode : 000000
Move(移动)动词
移动动词是用来将数据从源数据复制到目标数据的。它可以用于基本和组数据项。对于组数据项,使用MOVE CORRESPONDING/CORR。在尝试其它选项的时候,MOVE CORR不工作;但是在大型机服务器上工作。
对于从字符串移动数据,则使用MOVE(x:l),其中x是起始位置,l是长度。如果目标数据项PIC子句少于源数据项PIC子句,则数据将被截断。如果目标数据项PIC子句多于源数据项PIC子句,则将添加额外的ZEROS或SAPCES字节。从下面的例子可以清楚的看到:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
0