本文概述
- 打开
- 读
- 写
- 改写
- 删除
- 开始
- 关
以下是文件处理动词的列表, 或者我们可以说文件处理动词:
- 打开
- 读
- 写
- 改写
- 删除
- 开始
- 关
- 继续阅读
- 阅读上一页
通过打开文件, 没有数据传输到记录缓冲区;它只是提供访问权限。
我们可以在每次文件操作后使用FILE STATUS变量检查状态。
语法如下:
OPEN <
mode>
file-name.
可以通过以下任意一种方式打开文件:
输入
此模式仅用于现有文件。要读取文件, 我们需要使用此模式。我们无法通过此模式对文件执行其他操作。当为INPUT打开文件时, 下一个记录指针指向文件开头的文件。
输出如下
输出模式用于将记录写入文件中。如果记录的顺序文件已经存在, 则该文件将被覆盖。但是对于索引文件和相对文件, 则不会发生。
延伸
此模式将记录追加到顺序文件中。在这种模式下, 记录将插入到末尾。在扩展模式下打开文件时, 下一个记录指针位于文件中的最后一条记录上。
对于随机和动态文件, 我们不能使用扩展模式。
输入输出
I-O是输入和输出模式。此模式读取和重写(更新)文件记录。
读 以INPUT或I-O模式打开文件后, 可以使用READ动词一次读取一条记录。这个动词从文件中复制一个记录出现或实例, 并将其放置在使用FD定义的记录缓冲区中, 然后我们可以对其进行访问。
语法如下:
文件访问模式为顺序访问时, 以下是动词的语法:
READ FILE-NAME [NEXT/PREVIOUS] RECORD [INTO identifier1][AT END {imperative statement}][NOT AT END {imperative statement}][END-READ]
以下是上述语法中定义的参数:
- NEXT RECORD:这是可选的, 用于顺序读取索引的顺序文件。
- INTO:此子句也是可选的。
- AT END:到达文件末尾时, 此条件变为true。
让我们看一个示例, 该示例将使用顺序组织读取现有文件。这将显示文件中写入的所有记录。在这里我们将使用file.txt文件。该文件位于我们的COBOL程序可用的同一目录中。
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT Employee ASSIGN TO 'file.txtThe file'ORGANIZATION IS LINE SEQUENTIAL.DATA DIVISION.FILE SECTION.FD Employee.01 Employee-FILE.05 Employee-ID PIC 9(5).05 NAME PIC A(25).WORKING-STORAGE SECTION.01 WS-Employee.05 WS-Employee-ID PIC 9(5).05 WS-NAME PIC A(25).01 WS-EOF PIC A(1). PROCEDURE DIVISION.OPEN INPUT Employee.PERFORM UNTIL WS-EOF='Y'READ Employee INTO WS-EmployeeAT END MOVE 'Y' TO WS-EOFNOT AT END DISPLAY WS-EmployeeEND-READEND-PERFORM.CLOSE Employee.STOP RUN.
file.txt文件在C:\ JTP \ Cobol Tutorial \ bin目录中包含以下内容:
101 Nikita Kesharwani102 Deep Ghosh103 Naina Kukreja104 Akash Singh
输出如下:
当你编译并执行上述程序时, 它将显示以下输出:
文章图片
语法如下:
当文件访问方式为随机时, 以下是动词的语法:
READ FILE-NAME RECORD [INTO identifier1][KEY IS key-1][INVALID KEY {imperative statement}][NOT INVALID KEY {imperative statement}][AT END {imperative statement}][NOT AT END {imperative statement}][END-READ]
写 该动词用于将内容写入文件。要将数据插入文件, 我们必须将数据移至记录缓冲区(在FD条目中声明), 然后将记录缓冲区的内容写入文件。
Write语句用于通过FROM(可选子句)直接从工作存储变量中写入记录。
根据文件打开模式, 可以通过两种方式将文件写入文件:
- 如果以OUTPUT模式打开文件, 则访问模式将是连续的。从第一个记录开始, 记录将被写入。在以OUTPUT模式打开之前, 如果文件中的某些数据可以刷新并从头开始写入。
- 如果以EXTEND模式打开文件, 则从最后一条记录开始, 记录将被添加到文件中。
语法如下:
以下是文件组织顺序时写记录的语法:
WRITE record-buffer [FROM ws-file-structure]END-WRITE.
以下是在索引文件组织或相对文件组织时写记录的语法:
WRITE record-buffer [FROM ws-file-structure]INVALID KEY DISPLAY 'Invalid Key'NOT INVALID KEY DISPLAY 'Record Inserted'END-WRITE.
例子:
让我们看一个示例, 该示例显示了在组织顺序的情况下如何在新文件中插入记录:
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT EMPLOYEE ASSIGN TO 'file2.txt'ORGANIZATION IS SEQUENTIALACCESS IS SEQUENTIAL.DATA DIVISION.FILE SECTION.FD EMPLOYEE.01 EMPLOYEE-FILE.05 EMPLOYEE-ID PIC X(5).05 NAME PIC A(10).05 RANK PIC X(3).WORKING-STORAGE SECTION.01 WS-EMPLOYEE.05 WS-EMPLOYEE-ID PIC 9(5).05 WS-NAME PIC A(25).05 WS-RANK PIC X(3).PROCEDURE DIVISION.DISPLAY 'WRITING TO A SEQUENTIAL FILE..'OPEN EXTEND EMPLOYEE.MOVE '100' TO EMPLOYEE-ID.MOVE 'NIKITA' TO NAME.MOVE '5' TO RANK.WRITE EMPLOYEE-FILEEND-WRITE. CLOSE EMPLOYEE.STOP RUN.
输出如下:
编译并执行此程序时, 它将显示以下输出:
文章图片
当你打开文件” file2.txt” 时, 它将添加一个新记录:
文章图片
改写 重写动词会更新记录, 但是必须以I-O模式打开文件才能执行重写操作。我们只有在成功读取操作之后才能执行重写操作。
重写动词将覆盖最近读取的记录。为此, 我们需要使用READ动词读取记录, 然后更改记录的内容, 然后执行REWRITE操作以更新记录。
语法如下:
以下是文件组织顺序时写记录的语法:
REWRITE record-buffer [FROM ws-file-structure]END-REWRITE.
以下是在文件组织被索引或相对时写记录的语法:
REWRITE record-buffer [FROM ws-file-structure]INVALID KEY DISPLAY 'Invalid Key'NOT INVALID KEY DISPLAY 'Record Updated'END-REWRITE.
删除 Delete动词用于删除记录, 该记录在文件的最新读取中读取。我们只能在索引文件和亲属文件上使用” 删除” 动词。并且该文件必须以I-O模式打开。
无法删除顺序文件中的记录。
在顺序访问模式下, Read语句最后一次读取的记录将被删除。并且你需要在随机访问模式下定义记录密钥以执行删除过程。
语法如下:
DELETE file-name RECORDINVALID KEY DISPLAY 'Invalid Key'NOT INVALID KEY DISPLAY 'Record Deleted'END-DELETE.
开始 我们只能对索引文件和相对文件执行启动操作。起始动词用于将文件指针放置在特定记录上。此访问模式必须是顺序的或动态的。必须在I-O输入模式下打开文件。开始不用于检索任何记录, 它仅将指针设置为下一次读取以读取记录。
语法如下:
以下是用于将指针置于特定记录的语法:
START file-name KEY IS [=, >
, <
, NOT, <
= or >
=] rec-keyINVALID KEY DISPLAY 'Invalid Key'NOT INVALID KEY DISPLAY 'File Pointer Updated'END-START.
关 该动词用于显式关闭文件。关闭文件时, 文件结构中的变量将无法处理。并且程序和文件之间的连接丢失。
语法如下:
【COBOL-文件处理动词】关闭文件的语法:
CLOSE file-name.
推荐阅读
- COBOL-内部排序
- COBOL-部门
- COBOL-文件处理
- COBOL-文件访问模式
- COBOL-条件语句用法图解
- COBOL-数据库接口
- 全民k歌下载|全民k歌app下载
- spring 5.1.2 mvc HanderMapping源码
- 运行流畅快速不卡顿的第三方Android模拟器的安装及配置——夜神模拟器