COBOL程序中的INSPECT动词

时间:2014-04-20 15:09:10

标签: cobol

这是我用于INSPECT动词的一个例子。

INSPECT FUNCTION REVERSE (WS-ADDR(7:4)) TALLYING WS-COUNT FOR LEADING SPACES
             DISPLAY 'COUNT  :' WS-COUNT
             COMPUTE WS-LENGTH = 4 - WS-COUNT
             DISPLAY 'LENGTH  :' WS-LENGTH

我没有使用以下输入获得正确的输出,

Input-1  - 43WE 
WS-COUNT = 0
LENGTH   = 4

Input-2  - 85
WS-COUNT = 2
LENGTH   = 2

Input-3  - 74OI
WS-COUNT = 2
LENGTH   = 2

对于input-3,WS-COUNT应该为0,但我得到2作为值。 请找到下面的控制台窗口屏幕,

IN-VALUES  :%ORIG243WE
COUNT  :000
LENGTH  :004
ADDRESSLINES:  43WE<br>  
WS-SUB  :004
IN-VALUES  :%ORIG385  
COUNT  :002
LENGTH  :002
ADDRESSLINES:  85<br>    
WS-SUB  :005
IN-VALUES  :%ORIG474OI
COUNT  :002
LENGTH  :002

你们有没有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

  

您必须在执行INSPECT之前初始化标识符-2   声明开始。

IBM Enterprise COBOL语言参考说,任何COBOL手册中的文字都是类似的。

identifier-2是你的TALLLYING的目标字段。

如果您未在INSPECT之前将其设置为初始值,则当前值将用于添加(或不是,在您的情况下)。

这有时非常有用,但如果您不想使用它,则必须在identifier-2之前将INPSECT字段设置为零。

在您的情况下,例如(您也可以使用INITIALIZESET 88,其VALUE子句的第一个位置为零,等等:

MOVE ZERO TO WS-COUNT

如果您显示数据定义,代表性样本输入和预期输出,您甚至可能会得到一些关于以更整洁的方式执行您想要的内容的提示。如果你告诉我们你想要什么。