gpt4 book ai didi

COBOL 混淆

转载 作者:行者123 更新时间:2023-12-01 08:20:49 27 4
gpt4 key购买 nike

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

让我感到困扰的是,我们受到项目参数的约束,以使用名为“Table-Size”的变量(在声明时设置为零)。

鉴于所有这些,我需要做一些类似“根据表格大小发生 1 到 90 次”的事情,但我不明白如果表格大小必须(据我所知)那将如何工作,因为表格-大小随着添加到表中的每个条目而增加。任何人都可以帮我解决这个问题吗?

谢谢!

最佳答案

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

答案是它分配了最大的空间量(足够 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,只有 TABLE的8个字符将被写入(当然,在为 TABLE-SIZE 写入的字符之上)。

所以,例如,如果 TABLE占用的内存是 AaaaBbbbCcccDdddEeeeFfffGgggHhhhIiii ,写入文件的日期可能会缩短(包括大小): 2AaaaBbbb .

同样,当记录被读回时, TABLE-SIZE以及 TABLE 的相关位将从文件中填充(仅设置大小和前两个元素)。

我不相信未使用的 TABLE发生这种情况时,条目将被初始化为任何内容。最好不要假设,如果您需要向表中添加另一个项目,则明确填充它们。

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

关于COBOL 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/692005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com