当前位置:  开发笔记 > 编程语言 > 正文

COBOL混淆

如何解决《COBOL混淆》经验,为你挑选了1个好方法。

嘿大家.我在使用COBOL在zOS环境中尝试解决的编码项目中遇到了一些麻烦.我需要读取一个文件并将它们放入一个索引表(我知道将有少于90个记录).

抛弃我的是我们受项目参数的约束,使用一个名为"Table-Size"的变量(在声明时设置为零).

鉴于这一切,我需要做一些类似"发生1到90次取决于表大小"的事情,但我不明白如果表大小必须(据我所知),这将如何工作因为表 - size随着添加到表中的每个条目一起递增.有人可以帮我清楚一下吗?

谢谢!



1> paxdiablo..:

听起来你的主要关注点是:如果在运行时大小发生变化,编译器如何知道在数组中分配多少?

答案是它分配了最大的空间量(足够90个​​条目).请注意,这是用于工作存储空间.将记录写入文件时,仅写入相关部分.

一个例子:

01  TABLE-SIZE  PIC 9
01  TABLE OCCURS 1 TO 9 TIMES DEPENDING ON TABLE-SIZE
    03 FLD1  PIC X(4)

这将为TABLE工作存储分配36个字符(9乘以4).如果TABLE-SIZE将记录写入文件时设置为2 ,则只写入8个字符TABLE(TABLE-SIZE当然,在写入的字符之上和之上).

因此,例如,如果占用的内存TABLEAaaaBbbbCcccDdddEeeeFfffGgggHhhhIiii,写入文件的日期可能会缩短(包括大小)2AaaaBbbb.

类似地,当读回记录时,将从文件中填充两者TABLE-SIZE和相关位TABLE(仅设置大小和前两个元素).

当发生这种情况时,我不相信未使用的TABLE条目被初始化为任何东西.不管怎样,最好不要假设,如果你需要在表格中添加另一个项目,请明确填充它们.

为了提高效率,您可能需要考虑设置TABLE-SIZEUSAGE IS COMP.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有