📅  最后修改于: 2023-12-03 14:59:57.560000             🧑  作者: Mango
COBOL是一种用于商业应用开发的编程语言,处理大量数据文件是其主要特点之一。因此,COBOL中的文件处理动词非常重要。
下面是COBOL中常用的文件处理动词:
OPEN是COBOL中用来打开文件的动词。它可以打开顺序文件、随机文件和索引文件,下面是一个简单的实例:
IDENTIFICATION DIVISION.
PROGRAM-ID. OPEN-FILE.
DATA DIVISION.
FILE SECTION.
FD MY-FILE.
01 MY-REC.
02 MY-FIELD-1 PIC X(10).
02 MY-FIELD-2 PIC 9(5).
WORKING-STORAGE SECTION.
01 WS-STATUS PIC X(2).
PROCEDURE DIVISION.
MAIN-PROC.
OPEN INPUT MY-FILE.
IF WS-STATUS <> '00'
DISPLAY 'OPEN ERROR - STATUS CODE: ' WS-STATUS
ELSE
DISPLAY 'FILE OPENED SUCCESSFULLY'
END-IF.
CLOSE MY-FILE.
CLOSE是COBOL中用来关闭文件的动词。它可以关闭顺序文件、随机文件和索引文件,下面是一个简单的实例:
IDENTIFICATION DIVISION.
PROGRAM-ID. CLOSE-FILE.
DATA DIVISION.
FILE SECTION.
FD MY-FILE.
01 MY-REC.
02 MY-FIELD-1 PIC X(10).
02 MY-FIELD-2 PIC 9(5).
WORKING-STORAGE SECTION.
01 WS-STATUS PIC X(2).
PROCEDURE DIVISION.
MAIN-PROC.
OPEN INPUT MY-FILE.
IF WS-STATUS <> '00'
DISPLAY 'OPEN ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
CLOSE MY-FILE.
IF WS-STATUS <> '00'
DISPLAY 'CLOSE ERROR - STATUS CODE: ' WS-STATUS
ELSE
DISPLAY 'FILE CLOSED SUCCESSFULLY'
END-IF.
STOP RUN.
READ是COBOL中用来读取文件记录的动词。它可以读取顺序文件、随机文件和索引文件,下面是一个简单的实例:
IDENTIFICATION DIVISION.
PROGRAM-ID. READ-FILE.
DATA DIVISION.
FILE SECTION.
FD MY-SEQ-FILE.
01 MY-REC.
02 MY-FIELD-1 PIC X(10).
02 MY-FIELD-2 PIC 9(5).
WORKING-STORAGE SECTION.
01 WS-STATUS PIC X(2).
PROCEDURE DIVISION.
MAIN-PROC.
OPEN INPUT MY-SEQ-FILE.
IF WS-STATUS <> '00'
DISPLAY 'OPEN ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
READ MY-SEQ-FILE INTO MY-REC.
IF WS-STATUS <> '00'
DISPLAY 'READ ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
DISPLAY 'MY-FIELD-1: ' MY-FIELD-1
' MY-FIELD-2: ' MY-FIELD-2.
CLOSE MY-SEQ-FILE.
STOP RUN.
WRITE是COBOL中用来写入文件记录的动词。它可以写入顺序文件、随机文件和索引文件,下面是一个简单的实例:
IDENTIFICATION DIVISION.
PROGRAM-ID. WRITE-FILE.
DATA DIVISION.
FILE SECTION.
FD MY-SEQ-FILE.
01 MY-REC.
02 MY-FIELD-1 PIC X(10).
02 MY-FIELD-2 PIC 9(5).
WORKING-STORAGE SECTION.
01 WS-STATUS PIC X(2).
PROCEDURE DIVISION.
MAIN-PROC.
OPEN OUTPUT MY-SEQ-FILE.
IF WS-STATUS <> '00'
DISPLAY 'OPEN ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
MOVE 'HELLO' TO MY-FIELD-1.
MOVE 12345 TO MY-FIELD-2.
WRITE MY-REC.
IF WS-STATUS <> '00'
DISPLAY 'WRITE ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
CLOSE MY-SEQ-FILE.
STOP RUN.
REWRITE是COBOL中用来重写文件记录的动词。它只适用于随机文件和索引文件,下面是一个简单的实例:
IDENTIFICATION DIVISION.
PROGRAM-ID. REWRITE-FILE.
DATA DIVISION.
FILE SECTION.
FD MY-RAND-FILE.
01 MY-REC.
02 MY-KEY PIC X(10).
02 MY-FIELD-1 PIC X(10).
02 MY-FIELD-2 PIC 9(5).
WORKING-STORAGE SECTION.
01 WS-STATUS PIC X(2).
PROCEDURE DIVISION.
MAIN-PROC.
OPEN I-O MY-RAND-FILE.
IF WS-STATUS <> '00'
DISPLAY 'OPEN ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
READ MY-RAND-FILE KEY IS 'ABC123'.
IF WS-STATUS <> '00'
DISPLAY 'READ ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
REPLACE MY-FIELD-1 OF MY-REC WITH 'HELLO'.
REPLACE MY-FIELD-2 OF MY-REC WITH 12345.
REWRITE MY-REC.
IF WS-STATUS <> '00'
DISPLAY 'REWRITE ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
CLOSE MY-RAND-FILE.
STOP RUN.
DELETE是COBOL中用来删除文件记录的动词。它只适用于随机文件和索引文件,下面是一个简单的实例:
IDENTIFICATION DIVISION.
PROGRAM-ID. DELETE-FILE.
DATA DIVISION.
FILE SECTION.
FD MY-RAND-FILE.
01 MY-REC.
02 MY-KEY PIC X(10).
02 MY-FIELD-1 PIC X(10).
02 MY-FIELD-2 PIC 9(5).
WORKING-STORAGE SECTION.
01 WS-STATUS PIC X(2).
PROCEDURE DIVISION.
MAIN-PROC.
OPEN I-O MY-RAND-FILE.
IF WS-STATUS <> '00'
DISPLAY 'OPEN ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
READ MY-RAND-FILE KEY IS 'ABC123'.
IF WS-STATUS <> '00'
DISPLAY 'READ ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
DELETE MY-REC.
IF WS-STATUS <> '00'
DISPLAY 'DELETE ERROR - STATUS CODE: ' WS-STATUS
STOP RUN
END-IF.
CLOSE MY-RAND-FILE.
STOP RUN.
以上就是COBOL中的文件处理动词的基本介绍和示例代码,程序员可以根据需要选择合适的动词来操作文件。