我正在阅读COBOL程序文件,我正在努力理解STRING
命令在以下示例中的工作方式
STRING WK-NO-EMP-SGE
','
WK-DT-DEB-PER-FEU-TEM
','
WK-DT-FIN-PER-FEU-TEM
DELIMITED BY SIZE
INTO UUUUUU-CO-CLE-ERR-DB2
Run Code Online (Sandbox Code Playgroud)
我对它的作用有三种可能的理解:
UUUUUU-CO-CLE-ERR-DB2
每个值并将每个值分开','
,最后一个变量由size分隔;UUUUUU-CO-CLE-ERR-DB2
每个值并将每个值分开','
,但是所有值都是按大小分隔的(这意味着DELIMITED BY SIZE
在这种情况下,它适用于在string命令中传递的所有值;WK-NO-EMP-SGE
将由','
,WK-DT-DEB-PER-FEU-TEM
由','
和WK-DT-FIN-PER-FEU-TEM
将分隔DELIMITED BY SIZE
.我的哪个读书实际上是好的?
这是STRING的语法图(来自Enterprise COBOL语言参考):
现在您需要知道如何阅读它.
幸运的是,同一文件告诉你如何:
如何阅读语法图
使用以下描述来阅读本文档中的语法图:
.按照行的路径从上到下,从上到下阅读语法图.
>> ---符号表示语法图的开头.
--->符号表示语法图在下一行继续.
> ---符号表示语法图从前一行继续.
---> <符号表示语法图的结束.除完整语句之外的句法单元的图表以> ---符号开头,以--->符号结尾.
.所需项目显示在水平线(主路径)上.
.可选项目显示在主路径下方.
.当您可以从两个或更多项目中进行选择时,它们会垂直显示在堆栈中.
如果必须选择其中一个项目,则主路径上将显示堆栈中的一个项目.
如果选择其中一个项目是可选项,则整个堆栈将显示在主路径下方.
.返回到主线上方左侧的箭头表示可以重复的项目.
堆栈上方的重复箭头表示您可以从堆叠项目中进行多项选择,或重复单个选项.
.变量以斜体小写字母显示(例如,parmx).它们代表用户提供的名称或值.
.如果显示标点符号,括号,算术运算符或其他此类符号,则必须将它们作为语法的一部分输入.
所有这些意味着,如果你遵循它,你的2号是正确的.
您可以使用分隔符(当您没有固定长度的数据时)或只使用大小.任何未明确分隔的项目都由下一个DELIMITED BY
语句分隔.
STRING需要注意的一点是,在您的情况下无关紧要的是,如果数据短于目标,则目标字段不会填充空格.对于可变长度数据,您需要在执行STRING之前将字段清空到空格.