微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

记录的第一个整数包含文件的子句与最小值不同

如何解决记录的第一个整数包含文件的子句与最小值不同

我试图在文件部分定义一个文件,其记录长度为 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).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。