首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCOBOL复杂的ODO (发生取决于)

OpenCOBOL复杂的ODO (发生取决于)
EN

Stack Overflow用户
提问于 2011-02-24 15:00:43
回答 1查看 1.4K关注 0票数 0

我是COBOL(和OpenCOBOL)的新手,我的问题是关于OpenCOBOL中的"complex-odo“(OCCURS...DEPENDING ON)。

我在下面的代码中使用了1.0

.

代码语言:javascript
复制
01  W-PTDO-PROC-TBL.
       05  W-PTDO-PROC-ENTRY OCCURS 0 TO 450 TIMES
             DEPENDING ON W-PTDO-PROC-MAX
             INDEXED BY W-PTDO-PROC-INDX.
           10 W-PTDO-PROC-APC        PIC X(05).
           10 W-PTDO-PROC-LNSUB      PIC S9(07)   COMP-3.
           10 W-PTDO-PROC-KEY.
               15 W-PTDO-PROC-WA-OFFSET  PIC 9(08)V99.
               15 W-PTDO-PROC-UNITS      PIC 9(09).
           10 W-PTDO-PROC-DEVICE-CNT PIC 9(03).
           10 W-PTDO-PROC-DARRAY OCCURS 0 TO 450 TIMES
                DEPENDING ON W-PTDO-DARRAY-MAX
                INDEXED BY W-PTDO-DARRAY-INDX.
               15  W-PTDO-PROC-DHCPCS PIC X(05).
           10 W-PTDO-DARRAY-SIZE     PIC 9(03).
           10 W-PTDO-PROC-TOT-DCHRGS PIC 9(10)V99.
           10 W-PTDO-PROC-TOT-DUNITS PIC 9(05).
           10 W-PTDO-PROC-USED       PIC X(01).

.

并且cobc返回此错误消息:

错误:由于'W-PTDO-PROC-DARRAY‘,'W-PTDO-PROC-ENTRY’不能包含OCCURS子句

上面的错误消息是从field.c发出的。c我在那里找到了这条注释/*包含contains子句的数据项不能从属于包含contains子句的数据项*/

有没有办法让OpenCOBOL支持这个“复杂的odo”?

根据IBM's COBOL Programming Guide的附录,我上面的代码片段带有嵌套在更高级别的“发生”子句下的“发生依赖”,看起来是一个定义良好的"complex-odo“。

谢谢,

比利·荣

EN

回答 1

Stack Overflow用户

发布于 2011-03-14 14:12:59

你不能在另一个数组中有一个可变长度的数组(发生取决于)!

所需的处理太复杂了。如果允许内部数组项的长度变化,则计算外部数组的第N个条目的开始的唯一可能方法是从1到N顺序访问每个内部成员,并使用依赖于计数来计算其长度,从而计算出下一个数组条目的开始。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5101422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档