如何定义变长表_精通COBOL——大型机商业编程技术详解(修订版)_[共2页]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
COBOL
10 DATA-ONE PIC X(10).
05 SUB-ONE PIC 99 COMP.
该段代码定义了一张下标表,同时该表也是定长表。
根据OCCURS语句得到该表共有10个数据条目,因此可认为该表长度为10。
该表存储空间大小为10 (5+10)=150。
同样,也可定义定长的索引表,定义方式如下。
01 FIXED-TABLE-TWO.
05 ENTRY-TWO OCCURS 10 TIMES
INDEXED BY TWO-NDX.
10 NUM-TWO PIC 9(5).
10 DATA-TWO PIC X(10).
以上定义的定长索引表的长度仍然为10,同样是通过OCCURS语句后的重复次数得到的。
该表既是定长表,也是索引表,这两个概念是并行的。
若要定义可用于二分查找的索引表,则还需使表中数据有序排列。
若数据为升序排列,使用ASCENDING KEY BY语句完成;降序使用DESCENDING KEY BY语句。
升序排列的定长索引表定义方式如下。
01 FIXED-TABLE-THREE.
05 ENTRY-THREE OCCURS 10 TIMES
INDEXED BY THREE-NDX
ASCENDING KEY NUM-THREE.
10 NUM-THREE PIC 9(5).
10 DATA-THREE PIC X(10).
降序排列的定长索引表定义方式如下。
01 FIXED-TABLE-FOUR.
05 ENTRY-FOUR OCCURS 10 TIMES
INDEXED BY FOUR-NDX
DESCENDING KEY NUM-FOUR.
10 NUM-FOUR PIC 9(5).
10 DATA-FOUR PIC X(10).
以上列举了几种类型的定长表,同时也是对前面两节中关于表的定义的一个简单回顾。
实际上,定长表最根本的特征就是定义表语句OCCURS后的重复次数是一个确定的数字。
9.15.2 如何定义变长表
变长表是本节要讨论的重点内容。
当表中数据数目不确定时,使用变长表。
变长表中的数据数目根据程序中执行的具体情况而确定。
定义变长表时,主要是通过在OCCURS语句后加上DEPENDING ON选项实现的。
另外,此处的OCCURS语句后通常不再是一个具体的数字,而是一个范围大小。
定义变长表最关键的语句如下。
X OCCURS x1 TO x2 TIMES DEPENDING ON Y.
完整的定义方式如下。
01 VARIABLE-TABLE-ONE.
05 FIELD-ONE OCCURS 1 TO 9 TIMES
DEPENDING ON TABLE-LENGTH-ONE.
10 VARI-NUM-ONE PIC 9(5).
10 VARI-DATA-ONE PIC X(10).
05 TABLE-LENGTH-ONE PIC 9.
第9章COBOL中的表
190。