【问题标题】:Mainframe programming using DFSORT使用 DFSORT 进行大型机编程
【发布时间】:2017-10-10 14:51:47
【问题描述】:

我正在尝试向大型机文件添加标头,但发现:

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个会完成什么?

对不起,我正在学习如何为大型机编写代码。

【问题讨论】:

  • 什么'标题'?这本身没有任何意义。编辑您的问题并告诉我们更多关于您想要做什么的信息。请收下tour,学习How to Ask
  • 我有一个文件输出,我需要在将其转换为 .csv 之前添加标题
  • 文件看起来像"
  • 210000000 Andres Gutierrez 123 N street apt. 3 威奇托 KS 100 100 英尺 WS
  • 请实际阅读@greg-449 的cmets。和“编辑你的问题”

标签: sorting mainframe zos dfsort


【解决方案1】:

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

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

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

.

【讨论】:

    【解决方案2】:

    @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)
    

    两者都给出相同的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多