COBOL+CICS文件操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

COBOL+CICS文件操作

1.输入输出数据

非CICS:

ACCEPT数据来源:终端输入和系统接收。

一般系统接收数据为日期或者时间。

DA TE--YYMMDD.

DAY---YYDDD.

DAY-OF-WEEK--- PIC 9. 范围1-7.

TIME---HHMMSSHH,最后HH表示hundredths from midnigth.

如:DA TA DIVISION.

WORKING-STORAGE SECTION.

01 INPUT-DATE.

05 INPUT-YEAR PIC 99.

05 INPUT-MONTH PIC 99.

05 INPUT-DAY PIC 99.

*

PROCEDURE DIVISION.

...

ACCEPT TEST-DA TE.

DISPLAY TEST-DATE. ---终端输入的数据

ACCEPT TEST-DA TE FROM DA TE. --系统产生的数据

DISPLAY TEST-DATE. --输出

CICS下:

如:DA TA DIVISION.

WORKING-STORAGE SECTION.

01 INFLDS.

05 INLEN PIC 9(4) COMP.

01 INPUT-NAME.

05 INPUT-FIRST PIC X(10).

05 INPUT-MIDDLE PIC X(10).

05 INPUT-LAST PIC X(10).

*PROCEDURE DIVISION.

...

MOVE 15 TO INLEN.

EXEC CICS RECEIVE INTO(INPUT-NAME)

LENGTH(INLEN) --所接收的最大长度,小于为实际,大于为异常END-EXEC.

EXEC CICS SEND FROM(INPUT-NAME)

LENGTH(20) --为实际长度,并非变量。输出位置为当前光标位置END-EXEC.

...

GOBACK.

2.文件操作

普通文件非CICS:

如:ENVIRONMENT DIVISION.

INPUT-OUTPUT SECTION.

FILE-CONTROL

SELECT CUSTOMER-FILE ASSIGN TO S-SYSIN. --定义对应到COBOL文件名SELECT PRINT-FILE ASSIGN TO S-SYSOUT.

*

DATA DIVISION.

FILE SECTION.

FD CUSTOMER-FILE --定义FD记录

RECORD MODE IS F.

01 CUSTOMER-RECORD.

05 CUST-NO PIC 9(5).

05 CUST-NAME PIC X(10).

FD PRINT-FILE.

RECORD MODE IS F.

LABEL RECORDS ARE OMITTED

RECORD CONTAINS 132 CHARACTERS

DATA RECORD IS PRINT-LINE. --定义数据记录在程序中的名称

01 PRINT-LINE PIC X(132).

WORKING-STORAGE SECTION.

01 EOF-FLAG PIC X V ALUE 'N'.

01 HEADING-LINE.

05 FILLER PIC X(5) V ALUE SPACES.

05 FILLER PIC X(15) V ALUE 'CUSTOMER NO'.

05 FILLER PIC X(7) V ALUE SPACE.

05 FILLER PIC X(15) V ALUE 'CUSTOMER NAME'.

05 FILLER PIC X(90).

01 OUTPUT-FILE.

05 FILLER PIC X(10) V ALUE SPACES.

05 PRT-NO PIC X(5).

05 FILLER PIC X(15) V ALUE SPACES.

05 PRT-NAME PIC X(10).

05 FILLER PIC X(92).

*

PROCEDURE DIVISION.

OPEN INPUT CUSTOMER-FILE ---OPEN语句可以指出该文件时输入还是输出文件。

OUTPUT PRINT-FILE.

也可以直接读到其他地方。

READ CUSTOMER-FILE --READ后为文件名,而WRITE为记录。

AT END MOVE 'Y' TO EOF-FLAG --AT END-读到末尾所要采取的操作。

END-READ.

MOVE HEADING-LINE TO PRINT-LINE.

WRITE PRINT-LINE.

PERFORM 100-PROCESS-RECORDS

UNTIL EOF-FLG = 'Y'

CLOSE CUSTOMER-FILE

PRINT-FILE.

STOP RUN.

100-PROCESS-RECORDS.

IF CUST-NO > 100

MOVE CUST-NO TO PRT-NO.

MOVE CUST-NAME TO PRT-NAME.

WRITE PRINT-LINE FROM OUTPUT-LINE

END-IF

READ CUSTOMER-FILE

AT END MOVE 'Y' TO EOF-FLAY

END-READ.

VSAM文件非CICS:

如:ENVIRONMENT DIVISION.

INPUT-OUTPUT SECTION.

FILE-CONTROL.

* SELECT KS-FILE ASSIGN TO VKSDS

SELECT OPTIONAL MACC ASSIGN TO KSDSFILE

ORGANIZATION INDEXED --逻辑结构,通常为顺序或索引

ACCESS MODE DYNAMIC --访问方式,顺序,直接,动态(包括前面两个)RECORD KEY TEST-NO --文件中的KEY

FILE STATUS TEST-STAT. --反应读取或写入的状态

*

DATA DIVISION.

FILE SECTION.

FD KS-FILE01

LABEL RECORD IS STANDARD --指明该VSAM文件是否含有标号。

DATA RECORD IS TEST1. --定义该VSAM逻辑记录在程序中的名称。

01 TEST1.

05 TEST1-NO PIC X(5).

05 TEST1-NAME PIC X(10).

...

*

PROCEDURE DIVISION.

OPEN INPUT KS-FILE01,KS-FILE02 --只可以WRITE

I-O RR-FILE --可以REWRITE

OUTPUT ES-FILE.

READ KS-FILE01 NEXT RECORD

相关文档
最新文档