Cobol 大型机 - 执行不同的索引 - 显示
Posted
技术标签:
【中文标题】Cobol 大型机 - 执行不同的索引 - 显示【英文标题】:Cobol Mainframe - perform varying Index - display 【发布时间】:2017-10-01 00:46:59 【问题描述】:所以我刚刚开始在 Z/OS 上学习 COBOL。我已经使用视觉 cobol 做了很多事情;但是,这仍然是完全不同的。
我需要显示一个从索引 1 开始并显示到索引为 50 的表格
PERFORM VARYING W03-SUBJ-INDX FROM 1 BY 1
UNTIL W03-SUBJ-INDX = 50
DISPLAY W03-SUBJ-TABLE
END-PERFORM
这是我目前的方法,我也尝试过
PERFORM VARYING W03-SUBJ-INDX FROM 1 BY 1
UNTIL W03-SUBJ-INDX = 50
DISPLAY W03-SUBJ-TABLE(w03-subj-indx)
END-PERFORM
顶部示例仅显示第一个索引项(预期)-第二个示例给我一个错误,指出“)”是意外的。
任何帮助将不胜感激。我被告知我必须使用索引
【问题讨论】:
W03-SUBJ-TABLE
的工作存储定义是什么?
(预期的)部分并不是真正预期的。鉴于该代码片段,期望是显示整个表格组,49 次。
如果没有此表的有效存储布局,我们真的无法为您提供帮助。还包括实际的编译错误会有很长的路要走。
另外,您应该显示索引 50,还是仅显示 1 到 49?
【参考方案1】:
所以关于您现有的代码......在 Enterprise Cobol 解析器的某些版本中存在一些问题......
DISPLAY W03-SUBJ-TABLE(w03-subj-indx)
可能会这样工作:
DISPLAY W03-SUBJ-TABLE ( w03-subj-indx )
Enterprise Cobol 编译器的某些版本在没有空格的情况下无法很好地解析。这在进行引用修改时尤其重要,但也适用于表。
试一试,YMMV。
【讨论】:
【参考方案2】:您没有提及您使用的是哪个编译器版本,但曾经有一个——我不记得是哪个版本了——那是带有下标和参考修改的古怪。
尝试插入一些空格:
DISPLAY W03-SUBJ-TABLE ( w03-subj-indx )
另外,确保 W03-SUBJ-TABLE 是数组,而不是包含数组的组项。
【讨论】:
以上是关于Cobol 大型机 - 执行不同的索引 - 显示的主要内容,如果未能解决你的问题,请参考以下文章