问题描述
我试图在文件部分定义一个文件,其记录长度为 300,记录格式为 VB,但我收到错误消息“记录的第一个整数包含文件的子句与最小值不同”
FD INPUT-FILE
E THE FirsT INTEGER OF THE "RECORD CONTAINS" CLAUSE FOR FILE "INPUT-F //Error msg
ILE" WAS DIFFERENT FROM THE MINIMUM //Error msg
RECORDING MODE IS V
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 30 TO 300 CHaraCTERS
DATA RECORD IS IN-02-RECORD.
01 IN-02-RECORD.
05 IN-ALL PIC X(30).
05 IN-END PIC X(270).
解决方法
您的定义只有一条固定长度的记录,与可变长度的 FD
不匹配。
您可能想要使用多个固定的和/或可变长度的:
单变长:
FD INPUT-FILE
RECORDING MODE IS V
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 30 TO 300 CHARACTERS
DATA RECORD IS IN-02-RECORD.
01 IN-02-RECORD.
05 IN-ALL PIC X(30).
05 IN-END PIC X OCCURS 0 TO 270
DEPENDING ON some-var.
三种可能长度的可变长度文件(删除通常过时的 DATA RECORD
子句):
FD INPUT-FILE
RECORDING MODE IS V
LABEL RECORDS ARE STANDARD
BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 30 TO 300 CHARACTERS
DATA RECORD IS IN-02-RECORD.
01 IN-02-RECORD.
05 IN-ALL PIC X(30).
01 IN-02-RECORD-B.
05 IN-ALL-B PIC X(30).
05 IN-END PIC X(270).
01 IN-02-RECORD-C.
05 IN-ALL-C PIC X(30).
05 IN-END-C PIC X(70).