我们是否可以编写一个shell脚本来查找cobol程序中数组的大小,就像数组的最大大小和填充的数组一样。
答案 0 :(得分:5)
问题1:我们能否通过某些东西(在本例中为shell脚本)可靠地找出某些编程语言中使用的最大数组(在本例中为COBOL)?
答案:不 - 通常您拥有动态访问权限(通过变量访问),如果您不使用所有程序运行程序,那么知道使用了多少是不可靠的可能的输入。
问题2:我们可以编写一个shell脚本来查找某些COBOL程序中的数组大小吗?
答案:是的,如果您不使用2002 + OCCURS DYNAMIC
(DEPENDING ON
将动态设置大小)并且不使用IBM扩展{{1 (OCCURS UNBOUNDED
用于定义大小,需要外部分配)。这留下了DEPENDING ON
。
只有array OCCURS [min [TO]] max
(或grep
,如果您已锁定在Windows上)findstr
,其后面会有最大尺寸。{1}}由于它可能位于新行上,因此您需要在检查之前删除换行符(例如,使用OCCURS
,如果文件可能包含DOS换行符,则需要额外tr '\n\ ' '
)。由于您可能有内联评论,因此需要先替换所有评论。根据格式(我假设固定格式参考格式),您必须首先删除每行的非代码部分,以满足连续行的需要。
如果您可以选择使用编译器预处理源代码可能要容易得多(我已经使用预处理免费的GnuCOBOL编译器进行类似的代码调查一次),甚至使用源列表的符号表,如果它提供了这个(GnuCOBOL确实有它)。在这种情况下,它归结为一个非常简单的tr '\r\ ' '
。