0

我正在尝试将标头添加到大型机文件中,但我发现了这一点:

SORT FIELDS=COPY
OUTFIL REMOVECC,
HEADER1=(1:C'COUNTRY_CODE',13:C',',14:C'CHECK_SEQ_NUMBER',30:C',',
         31:C'FORM_INDICATOR')
OUTREC BUILD=(1:1,2,3:C',',4:4,5,9:C',',10:10,1,80:X)

我需要第 2 行和第 5 行吗?第5个会完成什么?

抱歉,我正在学习如何为大型机编写代码。

4

2 回答 2

1

REMOVECC 中的“CC”代表回车控制字符。创建可打印报告需要这些字符。但是如果你不需要那个字符(我们大多不需要),那么你可以使用 REMOVECC 来抑制它们。因此,您可能希望保留第二行。

HEADER1 使用您提到的 COUNTRY_CODE 等列构建标题。此标题不存在于您的输入数据集中,因此您正在输出数据集中创建此新记录。

然后,您将通过 OUTREC 将输入记录复制到输出(在标题之后)。所以,你也想保留第 5 行。

.

于 2017-11-06T06:19:37.547 回答
1

@William Edward Sanchez-Weeks,当您使用您拥有的数据和标题进行构建时,您也不需要通过计算位置来计算。SORT 将在内部处理它。

您发布的排序卡:

SORT FIELDS=COPY
OUTFIL REMOVECC,
HEADER1=(1:C'COUNTRY_CODE',13:C',',14:C'CHECK_SEQ_NUMBER',30:C',',
     31:C'FORM_INDICATOR')
OUTREC BUILD=(1:1,2,3:C',',4:4,5,9:C',',10:10,1,80:X)

可以写成

SORT FIELDS=COPY
OUTFIL REMOVECC,
HEADER1=(C'COUNTRY_CODE',C',',C'CHECK_SEQ_NUMBER',C',',C'FORM_INDICATOR')
OUTREC BUILD=(1,2,C',',4,5,C',',10,1,80:X)

两者都给出相同的结果。

于 2017-12-31T11:13:26.233 回答