假设我们有一个输入文件:
123456789+123456789+
FILE1 -X-X-X-X-X-X-X
ABCD 1234 XOXOXO 001
WXYZ 5678 YOYOYO 002
ABCD 0011 XOXOXO 003
我需要在FILE2中排序数据 包括=(11,6,CH,EQ,C' XOXOXO')很容易获得。
但是我还需要检查第一行(这是文件的标题)应该包含第一行写的FILE1。 那么我们只能检查INCLUDE条件 INCLUDE =(11,6,CH,EQ,C' XOXOXO&#39)
我想我需要IF然后=(类似的东西)
答案 0 :(得分:2)
您需要临时为记录添加序列号,测试序列号是否为WHEN = GROUP中的序列号并推送值为1,6。然后使用OUTFIL INCLUDE =(类似于"第二个镜头"在INCLUDE COND)和BUILD将您的记录恢复到之前的大小。
OPTION COPY
INREC IFTHEN=(WHEN=INIT,
OVERLAY=(21:SEQNUM,7,ZD)),
IFTHEN=(WHEN=GROUP,BEGIN=(21,7,ZD,EQ,1),
PUSH=(28:1,6))
OUTFIL INCLUDE=(28,6,CH,EQ,C'FILE1 ',
AND,
rest of your condition),
BUILD=(1,20)
请注意,SEQNUM之后和BEGIN中的7是相同的字段,这应该足够长以计算文件中的所有记录,否则您将获得一个泡菜。
您不能使用INCLUDE COND =因为您似乎无法识别标题,除非它是第一条记录,并且INCLUDE / OMIT COND =在其他任何内容之前处理。