首页 > 解决方案 > Cobol 参考修改:“MOVE Variable(Variable +literal:literal) TO Variable”到底是做什么的?

问题描述

关于 Cobol 中的参考修改,我不明白一件事。

这个例子是这样的:

MOVE VARIABLE(VARIABLE2 +4:2) TO VARIABLE3

现在我不明白“+4:2”指的是什么。这是否意味着目标移动后的前两个标志 4 个标志?这意味着如果例如 VARIABLE(第一个)填充有“123456789”并且 VARIABLE2 包含该变量中的第二个和第三个位置(所以“23”),那么目标是“23 +4”,意思是“789”。然后将目标中的前两个位置(由“:2”表示)移动到 VARIABLE3。所以最后 VARIABLE3 将包含“78”。

我是否理解这一权利,或者我是否对该指令做出错误假设?

标签: cobol

解决方案


(VARIABLE2 +4:2)是语法错误,因为起始位置必须是算术表达式。+之后必须有一个空格reference modification才能有效。并且,VARIABLE2必须是数字,并且表达式应计算为整数。

一旦更正,则4添加到 的内容中VARIABLE2。这是移动的最左侧(或起始位置)VARIABLE12字符移至VARIABLE3. 如果VARIABLE3长于两个字符,则剩余位置用空格填充。


根据 2002 COBOL 标准:

8.7.1 算术运算符

有五个二元算术运算符和两个一元算术运算符可用于算术表达式。它们由特定的 COBOL 字符表示,其前面应有一个空格,后跟一个空格,但左括号和一元运算符之间或一元运算符和左括号之间不需要空格。

重点补充。


推荐阅读