培训cobol找不到多少资料,弄了一下午,才弄出一个cobol读写文件的helloword
代码如下
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. FILE1.
000030 ENVIRONMENT DIVISION.
000040 INPUT-OUTPUT SECTION.
000050 FILE-CONTROL.
000060 SELECT GOODS-FILE
000070 ASSIGN TO "D:/GOODS.TXT".
000080
000090 DATA DIVISION.
000100 FILE SECTION.
000110 FD GOODS-FILE.
000120 01 GOODS.
000130 03 GOODS-NAME PIC X(04).
000140 PROCEDURE DIVISION.
000150 OPEN INPUT GOODS-FILE.
000160 READ GOODS-FILE.
000170
000180 CLOSE GOODS-FILE.
000190 DISPLAY GOODS-NAME.
000200 STOP RUN.
PS:在标题部以外的三个部都有有关读写的代码。
环境部中,有一个叫INPUT-OUTPUT的节,节中有一个FILE-CONTROL段。
在此段中用SELECT关键字关联内部和外部文件。
内部文件 GOODS-FILE,外部文件D:/GOODS.TXT,即在D盘根目录下GOODS.TXT文件,这个文件中我写了四个字符。
数据部中要有环境部中定义的内部文件,在FILE 节中,定义,FD关键字是定义出入力文件的
在过程部中,首先用OPEN关键字打开文件,其后跟一个关键字限制权限,权限如下
INPUT:
文件只能用于读取。 写入,修改或者删除操作会发生错误
OUTPUT:
文件只能用于写入。读取该文件会发生错误。若打开的文件已存在则删除所有现存记录。
I-O:
文件可以读写。
EXTEND:
文件只能写入。将记录插入到现有文件的末尾。
值后用READ关键字读文件,我觉得读是读入内存。
读完之后要关闭,用CLOSE关键字,这里的文件只有一行,四个字节。
所以没有循环控制
总结:
感觉cobol的I/O很原始,在硬盘中有入出力文件,在程序中有一个入出力文件的映射,在程序中可以操作这个映射,然后通过读写完成。
在三个部中都有内部文件名的,在环境部中连接,在数据部中通过FD定义,然后再操作部中操作。