查看上一个主题 :: 查看下一个主题
作者
信息
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
我目前正在使用
码:
*合并来自LIFT的LW文件
*
*这些排序命令既可以处理旧的,也可以保持不变,因为
*与新的记录合并一样,LW输出文件。
****************************************************** *********************
OPTION COPY
INREC IFTHEN =(WHEN=(1,1,CH,EQ,C'1',OR, ASA
114,1,CH,EQ,C'+',OR, Old eol
114,1,CH,EQ,C'|'), Old eol
OVERLAY=(122:C' ')),
IFTHEN =(WHEN=NONE,
OVERLAY=(122:SEQNUM,8,ZD,122:122,8,ZD,MOD,+ 2,M11,LENGTH = 1))
*
OUTREC IFTHEN =(WHEN=GROUP,BEGIN=(122,1,CH,EQ,C'1'),
PUSH =(123:1,121))
*
OUTFTIL FTOV,VLTRIM = C'',
OMIT =(122,1,CH,EQ,C'1'),
IFTHEN =(WHEN=(122,1,CH,EQ,C'0'),BUILD=(123,121,1,121)),
IFTHEN =(WHEN=(122,1,CH,EQ,C' '),BUILD=(1,121))
就像魅力一样。
但是,输入文件将要更改,并且由于我们仍然不愿意更新回归测试框架来满足FB(121)以外的文件的需要,因此上述内容必须更改为其他输入记录,这意味着如果有其他输入记录,当组。我想将当前叠加层更改为固定的“ 1”,然后是当前的seqnum逻辑(如果我错了,请纠正我!),然后添加另一个具有固定的“ 2”和mod +3序列号的问题,新记录需要由三个记录组成。 (是的,叹气...)
但是,我可以使用多个“ PUSH”吗?手册告诉我
引用:
您可以在PUSH中使用以下命令:
c:指定要覆盖的输出位置(列)。如果你不
为第一项指定c:,默认为1 :。如果不指定c:
对于任何其他项目,它在上一个项目之后开始。您可以指定
项以任何顺序排列,并与输出列重叠。 c可以是1到
32752.
如果您指定将输出记录扩展到
输入记录的末尾,记录长度自动
增加到该长度,并在左侧填入空白
需要。对于可变长度记录,RDW长度会增加
在所有项目都完成后对应于较大的记录长度
处理。指定输入字段中丢失的字节替换为
空白,以便可以处理填充字段。
下午
在每个组的第一个输入记录中指定一个字段
传播到该组的每条记录。 p指定开始
该字段在输入记录中的位置,而m指定其长度。
字段不得超出位置32752。
ID = n
指定将长度为n的ZD标识符添加到每个记录
每组。第一组的标识符从1开始,为
每个后续组增加1。 n可以是1到15。
序列= n
指定要添加长度为n的ZD序列号
每个组的每条记录。序列号从1开始
每个组的第一条记录,并为每个组增加1
小组的后续记录。 n可以是1到15。
重点增加了,看来我只能合并第一条记录中的数据?
还是我不得不诉诸更奇特的东西 使用SORT的大型机JCL记录转置 .
回到顶部
谢尔盖肯 活跃成员 已加入:2008年4月29日职位:937 所在地:马里兰
也许,尝试与 SEQNUM,...,RESTART =(x,y) 参数?
附言
看一下实际记录的样本会很有帮助...
逆向工程很无聊...
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
根本的问题是,您不能超过组的第一条记录。
我现在正在尝试做些事情,使我可以对连续两个SORT执行使用相同的排序控制卡,其中在第一遍中,两个表的前两个记录被合并,而在第二遍中,仅剩余的将第二个表的两个记录合并,并使用分步方法,将对输入数据集执行各种SORT控制语句的输出转储到SYSOUT,我十分确定这确实是可能的。
如果成功,我将结果发布在这里。
回到顶部
罗希特·乌马尔吉卡(Rohit Umarjikar) 全球主持人 已加入:2010年9月21日帖子:2575 地点:美国纽约
如果不同的GROUP,则应该允许另一个PUSH,是否有错误?为了完全解决问题,请向我们分享示例输入,规则和预期输出,并且有人可能会提出相关建议或将所有不同解决方案结合在一起。
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
好,这是一些原始数据,所有真实记录都是FB(121),输出格式是VB
码:
IFTHEN =(WHEN=(1,2,CH,EQ,C'1 ',要么,
1,23,CH,EQ,C' ',OR,
114,1,CH,EQ,C'+',OR,
114,1,CH,EQ,C'|'),
类型'2'记录将每2合并-总存在2的倍数,检测:
码:
IFTHEN =(WHEN=(9,1,CH,EQ,C'+',OR,
9,1,CH,EQ,C'|',OR,
16,1,CH,EQ,C'+',OR,
16,1,CH,EQ,C'|'),
类型“ 3”记录将每3合并一次-始终存在3的倍数,检测:
并且由于类型'2'的第二条记录的格式等于类型'3'的第二条记录的格式,因此IFTHEN =(WHEN语句必须按此顺序。类型'1的最后两个条件从所有输出由未拆分记录组成的时间开始,使用来处理遗留数据,这种情况在运行reqression测试框架时仍然会发生。
在:
码:
1
2a
2b
2c
2d
2e
2f
1
3a
3b
3c
3d
3e
3f
3g
3h
3i
出:
码:
1
2a2b
2c2d
1
3a3b3c
3d3e3f
3g3h3i
随时查看是否可以找到解决方案(只需将三个“ IFTHEN =(WHEN”替换为“ 1”,“ 2”和“ 3”的测试)即可。
我非常接近在我需要的两个工作步骤中使用一组相同的排序控制语句的东西(我愿意使用ICETOOL进行一个工作步骤解决方案),这可能比使用SUM FIELDS =()解决方案更具异国情调在Stackoverflow上,
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
这是数据的摘录,请记住它需要保存在FB(121)数据集中, 前导空白是相关的 ,所以在使用Cut时要小心& Paste!
码:
1
+ ------ + ------------------------------- + ---------- --------------------- + ---------------------------- --- + ----------------
--------------- + ------------------------------- +- ----------------------------- + -------------------- ----------- +
| |星期一 | Tuesday | Wednesday | Thursday
| Friday | Saturday | Sunday |
| + ---- + --------- + -------- + ------- + ---- + --------- +- ------ + ------- + ---- + --------- + -------- + ------- + --- -+ --------- +-
------- + ------- + ---- + --------- + -------- + ------- +- -+ --------- + -------- + ------- + ---- + --------- + ----- --- + ------- +
| Year | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM |
时间| V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = |
+ ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- +-
------- + ------- + ---- + --------- + -------- + ------- +- -+ --------- + -------- + ------- + ---- + --------- + ----- --- + ------- +
| 1980 | 4 | 1049.2 | 12:23 | 84.7 | 2 | 355.0 | 4:02 | 88.0 | 2 | 260.0 | 2:50 | 91.8 | 1 | 77.0 |
0:54 | 85.6 | 2 | 366.0 | 4:31 | 81.0 | 1 | 128.0 | 1:58 | 65.1 | 1 | 746.0 | 7:06 | 105.1 |
| 1982 | 4 | 1229.4 | 14:14 | 86.4 | 1 | 303.1 | 3:26 | 88.3 | 4 | 1281.8 | 16:14 | 79.0 | 4 | 2316.2 |
28:23 | 81.6 | 3 | 1596.8 | 17:52 | 89.4 | 2 | 682.1 | 9:39 | 70.7 | 2 | 492.2 | 5:41 | 86.6 |
| 1983 | 6 | 3653.6 | 38:30 | 94.9 | 5 | 3291.0 | 38:19 | 85.9 | 4 | 1089.5 | 13:08 | 83.0 | 4 | 1675.4 |
22:02 | 76.0 | 5 | 2029.3 | 23:36 | 86.0 | 1 | 282.8 | 3:25 | 82.8 | | | | |
| 1985 | 4 | 2237.9 | 25:37 | 87.4 | 3 | 1719.7 | 18:22 | 93.6 | 2 | 2267.3 | 22:17 | 101.7 | 2 | 1169.3 |
11:30 | 101.7 | | | | | 1 | 652.3 | 8:46 | 74.4 | 1 | 483.4 | 7:02 | 68.7 |
+ ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- +-
------- + ------- + ---- + --------- + -------- + ------- +- -+ --------- + -------- + ------- + ---- + --------- + ----- --- + ------- +
+ ----- + --------------------------------- + --------- ------------------------ + ------------------------- -------- + -----------
---------------------- + --------------------------- ------ + --------------------------------- + --------- ---------------------
--- + --------------------------------- +
| | Monday | Tuesday | Wednesday | Thursday
|星期五 | Saturday | Sunday
| Total |
| + ------ + --------- + -------- + ------- + ------ + -------- -+ -------- + ------- + ------ + --------- + -------- + ----- -+ ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
| Day | # | KM | Time | V = | # | KM | Time | V = | # | KM | Time | V = | # |
KM | Time | V = | # | KM | Time | V = | # | KM | Time | V = | # | KM | Time |
V = | # | KM | Time | V = |
+ ----- + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ------- + ------ + --------- + -------- + ------- + ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
| 1 | 27 | 4462.0 | 42:47 | 104.3 | 28 | 5466.2 | 53:48 | 101.6 | 61 | 7389.2 | 67:51 | 108.9 | 35 | 50
04.6 | 44:29 | 112.5 | 59 | 7552.0 | 73:40 | 102.5 | 16 | 1049.5 | 10:15 | 102.4 | 20 | 2878.4 | 26:51 | 107
.2 | 246 | 33801.9 | 319:41 | 105.7 |
| 2 | 27 | 3233.6 | 32:30 | 99.5 | 20 | 3169.4 | 32:22 | 97.9 | 37 | 3110.3 | 30:32 | 101.9 | 18 | 51
45.6 | 53:06 | 96.9 | 15 | 3385.8 | 33:01 | 102.5 | 36 | 4217.1 | 42:17 | 99.7 | 7 | 872.1 | 7:31 | 116
.0 | 160 | 23133.9 | 231:19 | 100.0 |
+ ----- + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ------- + ------ + --------- + -------- + ------- + ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
| Tot | 971 | 19197.7 | 119: 106.5 | 1009 | 37611.1 | 306:19 | 105.3 | 871 | 19047.8 | 109:28 | 107.3 | 673 | 938
83.3 | 915:33 | 102.5 | 650 | 77116.4 | 758:42 | 101.6 | 321 | 38841.0 | 377:36 | 102.9 | 293 | 44228.8 | 407:06 | 108
.6 | 4788 | 29926.1 | 993:52 | 105.1 |
+ ----- + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ------- + ------ + --------- + -------- + ------- + ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
回到顶部
谢尔盖肯 活跃成员 已加入:2008年4月29日职位:937 所在地:马里兰
有点棘手,但“有效”(此处的流行口号 )
限制:每种类型只有“完整”行组可以正确处理。
码:
1
2a
2b
2c
2d
2e
2f
1
3a
3b
3c
3d
3e
3f
3g
3h
3i
1
2a
2b
2c
2d
2e
2f
码:
INREC IFTHEN =(WHEN=GROUP,
KEYBEGIN=(1,1),
PUSH=(81:1,1,
82:SEQ=8)),
IFTHEN=(WHEN=(1,1,ZD,GT,+0),
OVERLAY=(82:(82,8,ZD, type '1': only 1
SUB,+1), type '2': 1-2-1-2-1-2-...
MOD,81,1,ZD, type '3': 1-2-3-1-2-3-...
ADD,+1,EDIT=(T)))
SORT FIELDS=COPY
OUTREC IFTHEN =(WHEN=GROUP,
BEGIN=(82,1,CH,EQ,C'3'),
PUSH =(94:1,2)),
IFTHEN =(WHEN=GROUP,
BEGIN=(82,1,CH,EQ,C'2'),
PUSH =(92:1,2)),
IFTHEN =(WHEN=GROUP,
BEGIN=(82,1,CH,EQ,C'1'),
PUSH =(90:1,2))
OUTFIL INCLUDE=(81,1,CH,EQ,82,1,CH), - only full group
IFTHEN =(WHEN=(81,1,CH,EQ,C'1'),
建造=(90,2,4X)),
IFTHEN =(WHEN=(81,1,CH,EQ,C'2'),
建造=(90,4,2X)),
IFTHEN =(WHEN=(81,1,CH,EQ,C'3'),
建造=(90,6))
END
码:
**************************************数据顶部*********
1
2a2b
2c2d
2e2f
1
3a3b3c
3d3e3f
3g3h3i
1
2a2b
2c2d
2e2f
********************************数据底部*******
回到顶部
乔格·芬代森 活跃用户 已加入:2015年8月15日帖子:388 地点:德国班贝格
码:
1
2a
2b
2c
2d
2e
2f
1
3a
3b
3c
3d
3e
3f
3g
3h
3i
更多步骤,但结果相同:
码:
记录 IFTHEN =(WHEN=INIT,OVERLAY=(35:SEQNUM,4,ZD)),
IFTHEN =(WHEN=(1,1,CH,EQ,C'1'),
叠加=(29:+0,M11,LENGTH=1),HIT=NEXT),
*
IFTHEN =(WHEN=(1,1,CH,EQ,C'2'),
叠加=(29:SEQNUM,1,ZD,START=0),HIT=NEXT),
IFTHEN =(WHEN=(1,1,CH,EQ,C'2'),
叠加=(29:29,1,ZD,MOD,+ 2,M11,LENGTH = 1),HIT=NEXT),
*
IFTHEN =(WHEN=(1,1,CH,EQ,C'3'),
叠加=(29:SEQNUM,1,ZD,START=0),HIT=NEXT),
IFTHEN =(WHEN=(1,1,CH,EQ,C'3'),
叠加=(29:29,1,ZD,MOD,+ 3,M11,LENGTH = 1),HIT=NEXT),
*
IFTHEN =(WHEN=(29,1,ZD,EQ,+0),OVERLAY=(3:4Z),HIT=NEXT),
IFTHEN =(WHEN=(29,1,ZD,EQ,+1),OVERLAY=(3:1,2,1:2Z,5:2Z),HIT=NEXT),
IFTHEN =(WHEN=(29,1,ZD,EQ,+2),OVERLAY=(5:1,2,1:4Z),HIT=NEXT),
*
IFTHEN =(WHEN=ANY,OVERLAY=(35:35,4,ZD,SUB,29,1,ZD,M11,LENGTH = 4))
*
SORT FIELDS=(35,4,ZD,A)
SUM FIELDS=(1,2,BI,3,2,BI,5,2,BI)
*
OUTFIL FNAMES=(SORTOUT),
REMOVECC,
建造=(1,6)
结束
但是,SUM对于实际数据并不是很实际。
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
太好了,但是我可能永远都不会给出易于处理的可塑数据。您的
码:
IFTHEN =(WHEN=(1,1,ZD,GT,+0)
依赖于'1','2','3',而实际数据则更加复杂,如您在较早的文章中所见,第1列可以包含以下字符,0-9,'',' ,'-'和'V',还有一个更相关的问题是我正在运行z / OS 1.10(是的,那个...),其中包含非常底层的DFSORT版本('ICE201I F' )。
我以为自己设法找到了解决方案,但似乎DFSORT可以解析整个
码:
OUTFTIL FTOV,VLTRIM = C'',
OMIT=(254,1,CH,EQ,C'1',OR,247,4,CH,EQ,C'Y001'),
IFTHEN=(WHEN=(247,1,CH,EQ,C'R'),BUILD=(1,237)),
IFTHEN=(WHEN=(247,1,CH,EQ,C'Y'),
BUILD=(1,4,255,242,5,54)),
IFTHEN=(WHEN=(248,2,CH,EQ,C'X0'),BUILD=(5,121,243:C'Q')),
IFTHEN=(WHEN=(249,1,CH,EQ,C'1'),
BUILD=(255,121,5,121,243:C'Q')),
IFTHEN=(WHEN=(250,1,CH,EQ,C'2'),
BUILD=(255,121,5,121,243:C'X')),
IFTHEN=(WHEN=(248,1,CH,EQ,C'X'),BUILD=(5,121,243:C'X'))
当输入文件是FB时,第一次通过就可以了,但是当输入文件是VB时,第二次通过就可以了,即使在这种情况下最后四个“ IFTHEN”从不匹配,也可以这样做。
因此,我受困于两组排序控制语句或Stackoverflow上代码的修改版本,从而将合计拆分为一大堆字段。
并回答不可避免的“为什么不产生长期记录?”
解答1:回归测试框架需要FB(121)文件,并且
A2:SuperC LINE比较的输出最大为176个字符。
还有不可避免的“折叠后如何看待输出?”
输出以'PRINO。*。T00101格式存储在数据集中0 '(T011T020,T021030等),并且查看包含每周数据的成员时,查看器会自动合并数据,当前在“ TxxxWPyy”成员中只有一个包含每周数据的表,显示为“ 里诺。*。T00101”O (TxxxWPyy)”,则在VIEW会话结束时删除此数据集。
使用您的单程解决方案将是理想的选择,但我想事实并非如此。
回到顶部
乔格·芬代森 活跃用户 已加入:2015年8月15日帖子:388 地点:德国班贝格
@普里诺 :这是您想从提供的折叠数据中看到的VB输出吗?
码:
// REFORMAT EXEC PGM = ICEMAN
// SORTIN DD DISP = SHR,DSN=&SYSUID..FB121
// SYSOUT DD SYSOUT=*
//整理 DD SYSOUT = *
// SYSIN DD *
选件复制
记录 IFTHEN =(WHEN=INIT,OVERLAY=(364:+120,ZD,LENGTH=4)),
IFTHEN =(WHEN=GROUP,BEGIN=(9,1,SS,EQ,C'+ |',或,41,1,SS,EQ,C'+ |'),
PUSH =(364:365,1,367:SEQ=1),RECORDS=2),
IFTHEN =(WHEN=GROUP,BEGIN=(42,1,SS,EQ,C'+|'),
PUSH =(364:366,1,367:SEQ=1),RECORDS=3),
IFTHEN =(WHEN=GROUP,BEGIN=(367,1,ZD,EQ,+1),
PUSH =(122:1,121)),
IFTHEN =(WHEN=GROUP,BEGIN=(367,1,ZD,EQ,+2),
PUSH =(243:1,121))
OUTFIL FNAMES=(SORTOUT),
INCLUDE=((364,1,ZD,EQ,+0),OR,
(364,1,ZD,EQ,+ 1,AND,367,1,ZD,EQ,+ 2),OR,
(364,1,ZD,EQ,+ 2,AND,367,1,ZD,EQ,+ 3)),
FTOV,VLTRIM=C' ',
IFTHEN =(WHEN=(364,1,ZD,EQ,+0),BUILD=(1,121)),
IFTHEN =(WHEN=(364,1,ZD,EQ,+ 1,AND,367,1,ZD,EQ,+ 2),
建造=(122,121,1,121)),
IFTHEN =(WHEN=(364,1,ZD,EQ,+ 2,AND,367,1,ZD,EQ,+ 3),
建造=(122,121,243,121,1,121))
结束
/ *
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
乔格·芬代森写道:
@普里诺 :这是您想从提供的折叠数据中看到的VB输出吗?
是的,可悲的是,否:使用排序控制语句运行时,第一个表可以正常运行,第二个表仍然完全折叠。
回到顶部
乔格·芬代森 活跃用户 已加入:2015年8月15日帖子:388 地点:德国班贝格
我已成功尝试使用您提供的这些数据。所以也许c&p在某处,但我已经检查了几次。
组织。 。 。 :PS
记录格式。 。 。 。 :FB
长度建议。 。 。 :121
普里诺写道:
码:
1
+ ------ + ------------------------------- + ---------- --------------------- + ---------------------------- --- + ----------------
--------------- + ------------------------------- +- ----------------------------- + -------------------- ----------- +
| |星期一 | Tuesday | Wednesday | Thursday
| Friday | Saturday | Sunday |
| + ---- + --------- + -------- + ------- + ---- + --------- +- ------ + ------- + ---- + --------- + -------- + ------- + --- -+ --------- +-
------- + ------- + ---- + --------- + -------- + ------- +- -+ --------- + -------- + ------- + ---- + --------- + ----- --- + ------- +
| Year | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM |
时间| V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = |
+ ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- +-
------- + ------- + ---- + --------- + -------- + ------- +- -+ --------- + -------- + ------- + ---- + --------- + ----- --- + ------- +
| 1980 | 4 | 1049.2 | 12:23 | 84.7 | 2 | 355.0 | 4:02 | 88.0 | 2 | 260.0 | 2:50 | 91.8 | 1 | 77.0 |
0:54 | 85.6 | 2 | 366.0 | 4:31 | 81.0 | 1 | 128.0 | 1:58 | 65.1 | 1 | 746.0 | 7:06 | 105.1 |
| 1982 | 4 | 1229.4 | 14:14 | 86.4 | 1 | 303.1 | 3:26 | 88.3 | 4 | 1281.8 | 16:14 | 79.0 | 4 | 2316.2 |
28:23 | 81.6 | 3 | 1596.8 | 17:52 | 89.4 | 2 | 682.1 | 9:39 | 70.7 | 2 | 492.2 | 5:41 | 86.6 |
| 1983 | 6 | 3653.6 | 38:30 | 94.9 | 5 | 3291.0 | 38:19 | 85.9 | 4 | 1089.5 | 13:08 | 83.0 | 4 | 1675.4 |
22:02 | 76.0 | 5 | 2029.3 | 23:36 | 86.0 | 1 | 282.8 | 3:25 | 82.8 | | | | |
| 1985 | 4 | 2237.9 | 25:37 | 87.4 | 3 | 1719.7 | 18:22 | 93.6 | 2 | 2267.3 | 22:17 | 101.7 | 2 | 1169.3 |
11:30 | 101.7 | | | | | 1 | 652.3 | 8:46 | 74.4 | 1 | 483.4 | 7:02 | 68.7 |
+ ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- +-
------- + ------- + ---- + --------- + -------- + ------- +- -+ --------- + -------- + ------- + ---- + --------- + ----- --- + ------- +
+ ----- + --------------------------------- + --------- ------------------------ + ------------------------- -------- + -----------
---------------------- + --------------------------- ------ + --------------------------------- + --------- ---------------------
--- + --------------------------------- +
| | Monday | Tuesday | Wednesday | Thursday
|星期五 | Saturday | Sunday
| Total |
| + ------ + --------- + -------- + ------- + ------ + -------- -+ -------- + ------- + ------ + --------- + -------- + ----- -+ ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
| Day | # | KM | Time | V = | # | KM | Time | V = | # | KM | Time | V = | # |
KM | Time | V = | # | KM | Time | V = | # | KM | Time | V = | # | KM | Time |
V = | # | KM | Time | V = |
+ ----- + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ------- + ------ + --------- + -------- + ------- + ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
| 1 | 27 | 4462.0 | 42:47 | 104.3 | 28 | 5466.2 | 53:48 | 101.6 | 61 | 7389.2 | 67:51 | 108.9 | 35 | 50
04.6 | 44:29 | 112.5 | 59 | 7552.0 | 73:40 | 102.5 | 16 | 1049.5 | 10:15 | 102.4 | 20 | 2878.4 | 26:51 | 107
.2 | 246 | 33801.9 | 319:41 | 105.7 |
| 2 | 27 | 3233.6 | 32:30 | 99.5 | 20 | 3169.4 | 32:22 | 97.9 | 37 | 3110.3 | 30:32 | 101.9 | 18 | 51
45.6 | 53:06 | 96.9 | 15 | 3385.8 | 33:01 | 102.5 | 36 | 4217.1 | 42:17 | 99.7 | 7 | 872.1 | 7:31 | 116
.0 | 160 | 23133.9 | 231:19 | 100.0 |
+ ----- + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ------- + ------ + --------- + -------- + ------- + ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
| Tot | 971 | 19197.7 | 119: 106.5 | 1009 | 37611.1 | 306:19 | 105.3 | 871 | 19047.8 | 109:28 | 107.3 | 673 | 938
83.3 | 915:33 | 102.5 | 650 | 77116.4 | 758:42 | 101.6 | 321 | 38841.0 | 377:36 | 102.9 | 293 | 44228.8 | 407:06 | 108
.6 | 4788 | 29926.1 | 993:52 | 105.1 |
+ ----- + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ------- + ------ + --------- + -------- + ------- + ------ + ----
----- + -------- + ------- + ------ + --------- + -------- +- ------ + ------ + --------- + -------- + ------- + ------ +- ------- + -------- + ----
--- + ------ + --------- + -------- + ------- +
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
这令人费解,将我在此处剪切和粘贴的数据剪切并粘贴回z / OS,并且可以正常工作,并以完整的输出运行它,但失败了...
我将通过逐步浏览各种“ IFTHEN”语句(将连续的“ 结束”语句放入其中)进行调查,并观察中间输出的情况。
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
OK,Mea culpa,mea maxima culpa!
原来我运行的是该程序的较新版本,其中第二个表的布局已更改为扩大了两列(&KM)一个字符以适应更大的值。
我正在测试的数据是从程序的当前“生产”版本中保存的,这就是我发布的内容。将第三个IFTHEN中的42更改为44可获得正确的结果,我仍在逐步跟踪以查看每个控制字的实际情况,以防万一(有可能)第三张表中有几个月的时间第一列。
很抱歉发布过时的数据,但非常感谢您表示可以通过一种解决方案! ;)
回到顶部
普里诺 警告:1 高级会员 已加入:2009年2月7日职位:1241 地点:立陶宛维尔纽斯
疯了,有人可以给我一个线索吗?
输入文件:
码:
视图 PRINO.@@121.TEXT Columns 00001 00121
命令===> Scroll ===> CSR
****** ************************************************ *********数据顶部************************************** *****************
000001 1
000002 + ------ + ------------------------------- + ---------- --------------------- + ---------------------------- --- + ----------------
000003 --------------- + ------------------------------- +- ------------------------------ + ------------------- ------------ +
000004 | |星期一 | Tuesday | Wednesday | Thursday
000005 |星期五 | Saturday | Sunday |
000006 | + ---- + --------- + -------- + ------- + ---- + --------- +- ------ + ------- + ---- + --------- + -------- + ------- + --- -+ --------- +-
000007 ------- + ------- + ---- + --------- + -------- + ------- +- --- + --------- + -------- + ------- + ---- + --------- + ---- ---- + ------- +
000008 |年份#D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM |
000009 Time | V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = |
000010 + ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- +-
000011 ------- + ------- + ---- + --------- + -------- + ------- +- --- + --------- + -------- + ------- + ---- + --------- + ---- ---- + ------- +
000012 | 1980 | 4 | 1049.2 | 12:23 | 84.7 | 2 | 355.0 | 4:02 | 88.0 | 2 | 260.0 | 2:50 | 91.8 | 1 | 77.0 |
000013 0:54 | 85.6 | 2 | 366.0 | 4:31 | 81.0 | 1 | 128.0 | 1:58 | 65.1 | 1 | 746.0 | 7:06 | 105.1 |
000014 + ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- +-
000015 ------- + ------- + ---- + --------- + -------- + ------- +- --- + --------- + -------- + ------- + ---- + --------- + ---- ---- + ------- +
000016 1
000017 + ----- + ----------------------------------- + ------- ---------------------------- + --------------------- -------------- + -----
000018 ------------------------------ + ------------------ ----------------- + -------------------------------- --- + ------------------
000019 ----------------- + ------------------------------- ---- +
000020 | | Monday | Tuesday | Wednesday | Thur
000021星期天 |星期五 | Saturday | Sunday
000022 |总 |
000023 | + ------ + ---------- + --------- + ------- + ------ + ------ ---- + --------- + ------- + ------ + ---------- + --------- + ------- + -----
000024-+ ---------- + --------- + ------- + ------ + ---------- + --------- + ------- + ------ + ---------- + --------- + ---- --- + ------ + ---------- +
000025 --------- + ------- + ------ + ---------- + --------- + --- ---- +
000026 |日 # | KM | 时间| V = | # | KM | 时间| V = | # | KM | 时间| V = | #
000027 | KM | 时间| V = | # | KM | 时间| V = | # | KM | 时间| V = | # | KM |
000028 Time | V = | # | KM | 时间| V = |
000029
000030-+ ---------- + --------- + ------- + ------ + ---------- + --------- + ------- + ------ + ---------- + --------- + ---- --- + ------ + ---------- +
000031 --------- + ------- + ------ + ---------- + --------- + --- ---- +
000032 | 1 | 27 | 4462.0 | 42:47 | 104.3 | 28 | 5466.2 | 53:48 | 101.6 | 61 | 7389.2 | 67:51 | 108.9 | 35
000033 | 5004.6 | 44:29 | 112.5 | 59 | 7552.0 | 73:40 | 102.5 | 16 | 1049.5 | 10:15 | 102.4 | 20 | 2878.4 |
000034 26:51 | 107.2 | 246 | 33801.9 | 319:41 | 105.7 |
000035
000036-+ ---------- + --------- + ------- + ------ + ---------- + --------- + ------- + ------ + ---------- + --------- + ---- --- + ------ + ---------- +
000037 --------- + ------- + ------ + ---------- + --------- + --- ---- +
000038 |小孩 971 | 119197.7 | 1119:08 | 106.5 | 1009 | 137611.1 | 1306:19 | 105.3 | 871 | 119047.8 | 1109:28 | 107.3 | 673
000039 | 93883.3 | 915:33 | 102.5 | 650 | 77116.4 | 758:42 | 101.6 | 321 | 38841.0 | 377:36 | 102.9 | 293 | 44228.8 |
000040 407:06 | 108.6 | 4788 | 629926.1 | 5993:52 | 105.1 |
000041
000042-+ ---------- + --------- + ------- + ------ + ---------- + --------- + ------- + ------ + ---------- + --------- + ---- --- + ------ + ---------- +
000043 --------- + ------- + ------ + ---------- + --------- + --- ---- +
****** ************************************************ ********数据底部******************************************* **************
二手JCL:
码:
// 里诺SOR JOB(PRINO),
// 'Test LW merge',
// CLASS=A,
// MSGCLASS=H,
// MSGLEVEL=(2,0),
// NOTIFY=&SYSUID
// **************************************************** *********************
// MERGELW EXEC PGM = SORT
// *
// SYSOUT DD SYSOUT = *
// *
// SORTIN DD DSN=&SYSUID..@@121.TEXT,
// DISP=SHR
// *
//整理 DD SYSOUT=*
// *
// SYSIN DD *
*合并LW文件
*
* See: https://stopbadbreath.net/viewtopic.php?t=68044
选件复制
* ------------------------------------------------- -------------------
*在第364-367列中输入“ 0120”
记录 IFTHEN =(WHEN=INIT,OVERLAY=(364:+120,ZD,LENGTH=4)),
* 随你 0120
* ------------------------------------------------- -------------------
*在第9列中测试“ +”或“ |”或第41列为“ +”或“ |”
*-复制365('1') to 364
*-将seqno添加到367,以获得两个记录
IFTHEN =(WHEN=GROUP,BEGIN=(9,1,SS,EQ,C'+ |',或,41,1,SS,EQ,C'+ |'),
PUSH =(364:365,1,367:SEQ=1),RECORDS=2),
* T-1 / P-1 1121
* T-1 / P-2 1122
* ------------------------------------------------- -------------------
*在第44列中测试“ +”或“ |”
*-复制366('2') to 364
*-将seqno添加到367,以获得三个记录
* !!将下面的44更改为80会出错!
IFTHEN =(WHEN=GROUP,BEGIN=(44,1,SS,EQ,C'+|'),
PUSH =(364:366,1,367:SEQ=1),RECORDS=3),
* T-2 / P-1 2121
* T-2 / P-2 2122
* T-2 / P-3 2123
* ------------------------------------------------- -------------------
*在第367列中测试'1'
*-在第122列添加1-121列
IFTHEN =(WHEN=GROUP,BEGIN=(367,1,ZD,EQ,+1),
PUSH =(122:1,121)),
* 随你 0120
* T-1 / P-1 T-1 / P-1 1121
* T-1 / P-2 T-1 / P-1 1122
* 随你 T-1 / P-1 0120
* T-2 / P-1 T-2 / P-1 2121
* T-2 / P-2 T-2 / P-1 2122
* T-2 / P-3 T-2 / P-1 2123
* 随你 T-2 / P-1 0120
* ------------------------------------------------- -------------------
*在367列中测试'2'
*-在第243列添加1-121列
IFTHEN =(WHEN=GROUP,BEGIN=(367,1,ZD,EQ,+2),
PUSH =(243:1,121))
* 随你 0120 x 0...: 1,121
* T-1 / P-1 T-1 / P-1 1121
* T-1 / P-2 T-1 / P-1 T-1 / P-2 1122
* t-1 / P-1 t-1 / P-1 T-1 / P-2 1121 x 1..1: 122,1+1,121
* t-1 / P-2 t-1 / P-1 t-1 / P-1 1122
* 随你 t-1 / P-1 t-1 / P-1 0120 x 0...: 1,121
* T-2 / P-1 T-2 / P-1 t-1 / P-1 2121
* T-2 / P-2 T-2 / P-1 T-2 / P-2 2122
* T-2 / P-3 T-2 / P-1 T-2 / P-2 2123 x 2..3:122,121 + 243,121 + 1,121
* ------------------------------------------------- -------------------
OUTFIL FNAMES=(SORTOUT),
INCLUDE=((364,1,ZD,EQ,+0),OR,
(364,1,ZD,EQ,+ 1,AND,367,1,ZD,EQ,+ 2),OR,
(364,1,ZD,EQ,+ 2,AND,367,1,ZD,EQ,+ 3)),
FTOV,VLTRIM=C' ',
IFTHEN =(WHEN=(364,1,ZD,EQ,+0),BUILD=(1,121)),
IFTHEN =(WHEN=(364,1,ZD,EQ,+ 1,AND,367,1,ZD,EQ,+ 2),
建造=(122,121,1,121)),
IFTHEN =(WHEN=(364,1,ZD,EQ,+ 2,AND,367,1,ZD,EQ,+ 3),
建造=(122,121,243,121,1,121))
结果输出,被截断了,但是很完美:
码:
SDSF编辑 里诺SOR (JOB22303) 整理 Columns 00001 00152
命令===> 滚动===> CSR
= COLS>---- + ---- 1 ---- + ---- 2 ---- + ---- 3 ---- + ---- 4 ---- + ---- 5 ---- + ---- 6 ---- + ---- 7 ---- + ---- 8 ---- + ---- 9 ---- + ---- 0 ---- + ---- 1 ---- + ---- 2 ---- + ---- 3 ---- + ---- 4 ---- + ---- 5 -
****** ************************************************ *************************数据顶部********************** ****************************************************
000001 1
000002 + ------ + ------------------------------- + ---------- --------------------- + ---------------------------- --- + ------------------------------- + -------------- --
000003 | |星期一 | Tuesday | Wednesday | Thursday |星期五
000004 | + ---- + --------- + -------- + ------- + ---- + --------- +- ------ + ------- + ---- + --------- + -------- + ------- + --- -+ --------- + -------- + ------- + ---- + --------- +
000005 |年份#D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM | Time | V = | #D | KM |
000006 + ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- + -------- + ------- + ---- + --------- +
000007 | 1980 | 4 | 1049.2 | 12:23 | 84.7 | 2 | 355.0 | 4:02 | 88.0 | 2 | 260.0 | 2:50 | 91.8 | 1 | 77.0 | 0:54 | 85.6 | 2 | 366.0 |
000008 + ------ + ---- + --------- + -------- + ------- + ---- + ----- ---- + -------- + ------- + ---- + --------- + -------- + ---- --- + ---- + --------- + -------- + ------- + ---- + --------- +
000009 1
000010 + ----- + ----------------------------------- + ------- ---------------------------- + --------------------- -------------- + ----------------------------------- +
000011 | | Monday | Tuesday | Wednesday | Thursday |
000012 | + ------ + ---------- + --------- + ------- + ------ + ------ ---- + --------- + ------- + ------ + ---------- + --------- + ------- + ------ + ---------- + --------- + ------- +
000013 |日 # | KM | 时间| V = | # | KM | 时间| V = | # | KM | 时间| V = | # | KM | 时间| V = |
000014 -+ ---------- + --------- + ------- +
000015 | 1 | 27 | 4462.0 | 42:47 | 104.3 | 28 | 5466.2 | 53:48 | 101.6 | 61 | 7389.2 | 67:51 | 108.9 | 35 | 5004.6 | 44:29 | 112.5 |
000016 -+ ---------- + --------- + ------- +
000017 |小孩 971 | 119197.7 | 1119:08 | 106.5 | 1009 | 137611.1 | 1306:19 | 105.3 | 871 | 119047.8 | 1109:28 | 107.3 | 673 | 93883.3 | 915:33 | 102.5 |
000018 -+ ---------- + --------- + ------- +
****** ************************************************ ************************数据底部*********************** **************************************************
查看输出时,第二个和第三个IFTHEN语句(9 + 41和44)中使用的列用于选择表,而在其他任何地方都没有使用。
但是,如果我将44更改为80(请参见标有!!的行)(以避免与“旧数据”冲突),并且80与44一样唯一,则输出中仅显示表2,并且我仍然拥有的一小撮头发正在迅速消失。
为什么翻转'ell不使用80而不是44起作用???
以及为什么要在第一列比较中使用两列,我还没有更改(但),但是令人费解。
回到顶部
谢尔盖肯 活跃成员 已加入:2008年4月29日职位:937 所在地:马里兰
第80列与第44列的问题看起来确实很奇怪...
出于调试目的,尝试在OUTFIL语句中不包含INCLUDE的情况下运行,然后将当前的“ 0123”组合从位置364添加到输出行?
还有另一种技巧:如果使用标记1/2/3来验证行类型(例如,初始OVERLAY =(364:C'1231'...)而不是C'0120'),则可以简化多个比较操作,如OUTFIL中所示:
INCLUDE =(364,1,CH,EQ,367,1,CH)-足够
何时=(364,1,ZD,EQ,+1) - is enough
等等。
回到顶部
查看书签
所有时间均为格林尼治标准时间+ 6小时
请启用JavaScript!