我有一个文件,其中记录格式为Variable Block(VB)。记录长度为225,块大小为27998.
如何在我的COBOL程序中声明这个?我目前正在获取文件状态代码39,这意味着
OPEN语句不成功,因为在固定文件属性和为程序中的文件指定的属性之间检测到冲突。 (检查的属性是组织,索引键(主要和备用),块大小和最大记录大小)
这是我当前的文件定义:
SELECT
INPUT-FILE ASSIGN TO INFILE1
ORGANIZATION IS LINE SEQUENTIAL
FILE STATUS IS RETURN-CODE-IN
.
FD INPUT-FILE
RECORDING MODE IS V
RECORD IS VARYING FROM 1 TO 221
BLOCK CONTAINS 0 RECORDS
.
答案 0 :(得分:4)
FD INPUT-FILE
Record Varying 1 To 221
Depending INPUT-FILE-REC-LEN
Block 0
Recording V.
01 INPUT-FILE-REC PIC X(221).
[...]
01 WORK-AREAS.
05 INPUT-FILE-REC-LEN PIC 9(004) COMP-5 VALUE 0.
成功读取操作后,INPUT-FILE-REC-LEN将包含已读取的记录长度。
答案 1 :(得分:0)
COBOL 85中引入了RECORD VARYING clause
来定义可变长度记录。 RECORDING MODE clause
始终是同一用途的非标准扩展名。
由于RECORD VARYING clause
已足够,RECORDING MODE clause
是多余的,因此应删除。