COBOL for Mainframe FundamentalsCh7 文件I/O处理文件处理?ENVIRONMENT DIVISION?INPUT-OUTPUT SECTION.?FILE-CONTROL.?DATA DIVISION?FILE SECTION.?FD?PROCEDURE DIVISION?OPEN?CLOSE?READ?WRITE?REWRITE :替换一个记录.?DELETE :删除一个记录.?START :定位到关系文件或索引文件中的一个记录,顺序访问从该位置开始. ENVIRONMENT DIVISION?ENVIRONMENT DIVISION.?INPUT-OUTPUT SECTION.?FILE-CONTROL.?SELECT [optional] file-name?ASSIGN TO ddname?[ORGINAZATION IS SEQUENTIAL|INDEXED|RELATIVE]?[ACCESS MODE IS SEQUENTIAL|RANDOM|DYNAMIC]?[RECORD KEY IS identifier-1]?[ALTERNATE RECORD KEY IS identifier-2]?[FILE STATUS IS identifier-3]?FILE STATUS 是两位数字,标志文件的状态, 例如:? 00 成功 10 读到文件尾 30 I/O 错误…?可以找到一个数组,?ENVIRONMENT DIVISION. ?INPUT-OUTPUT SECTION. ?FILE-CONTROL. ? SELECT INFILE ASSIGN TO FILE1 ? FILE STATUS IS FS1. ?SELECT OUTFILE ASSIGN TO FILE2 ? FILE STATUS IS FS2. ?INFILE 在FILE SECTION里定义?FILE1 是 JCL 里用到的ddname?FS1 在WORKING-STORAGE SECTION里定义 DATA DIVISION?DATA DIVISION.?FILE SECTION.?FDfile-name?[RECORD MODE IS F|V]?[BLOCK CONTAINS n RECORDS]?[RECORD CONTAINS n CHARACTERS]?*下面定义的是该文件的记录缓冲器(Record Buffer),是内存与外部?*文件的唯一通道和桥梁。它的结构必须和文件中的单条记录吻合。?01 data-item-name. ?05….?05….例子?DATA DIVISION?FILE SECTION. ?FD INFILE. ?01 INREC. ? 05 USERID PIC X(10). ? 05 FILLER PIC X. ? 05 PWDPIC X(10). ?01 OUTREC. ? 05 USERID PIC X(10). ? 05 FILLER PIC X. ? 05 RESULTPIC X(10).?...?WORKING-STORAGE SECTION.?01 WK-AREA PIC X(21).?01 FS1PIC 9(2).?01 FS2PIC 9(2). OPEN 语句?语法:?OPEN INPUT|OUTPUT|I-O|EXTENDfile-name-1, file-name-2.?例子:?OPEN INPUT INFILE1 INFILE2.?OPEN OUTPUT OUTFILE.?什么时候用 INPUT, OUTPUT, 或I-O? CLOSE 语句?语法:?CLOSEfile-name-1, file-name-2,…?[WITH LOCK],如果选用,则一个程序中同一个文件只能被打开一次.?例子:?CLOSE INFILE1 INFILE2.?CLOSE OUTFILE. READ 语句?语法:?READ file-name-1 [NEXT] [RECORD]?[INTO identifier-1]?[AT END statement-1]?[NOT AT END stat
文件IO处理 来自淘豆网www.taodocs.com转载请标明出处.