查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
马利克 4u
新的用户
已加入:2008年9月17日 职位:75 地点:班加罗尔
|
|
|
|
你好
我有一个将文件分割成5个文件的要求。该输入文件将具有XML集。 XML的数量没有限制。数量可以变化。每个XML用空白行分隔。 XML也没有大小限制。一种XML可能分散在100个记录中,而其他XML可能只有50个。输入文件记录的长度为200个字符。我需要将此文件分成5个文件。
例如,如果我在输入文件中有8个XML,则输出文件将具有xml,如下所示:
文件1-XML 1和XML 6
文件2-XML 2和XML 7
文件3-XML 3和XML 8
文件4-XML 4
文件5-XML 5
有人可以让我知道如何分割这种文件吗?
谢谢,
马利克 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
看看OUTFIL SPLIT及其表亲,选择一种适合您的表壳。 |
|
回到顶部 |
|
 |
尼克·克劳斯顿
全球主持人
加入时间:2007年5月10日 帖子:2455 地点:英国汉普郡
|
|
|
|
您无法使用JCL做到这一点。您是否想要一种分类解决方案?如果是这样,您为什么不在适当的分类论坛中发布? |
|
回到顶部 |
|
 |
马利克 4u
新的用户
已加入:2008年9月17日 职位:75 地点:班加罗尔
|
|
|
|
感谢您的快速回复。
我可以编写一个COBOL程序,使用Round Robin方法将文件拆分为多个文件。但是我正在寻找SORT解决方案。
谢谢,
马利克 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
您完成了我的建议吗? |
|
回到顶部 |
|
 |
彼得·荷兰
全球主持人

已加入:2009年10月27日 帖子:2475 所在地:荷兰,阿姆斯特尔芬
|
|
|
|
引用: |
使用Round Robin将文件拆分为多个文件 |
据我所知,RR用于将中间排序文件合并为一个,而不是拆分一个文件。
跟进比尔的建议。 |
|
回到顶部 |
|
 |
普里诺 警告:1 高级会员

已加入:2009年2月7日 职位:1241 地点:立陶宛维尔纽斯
|
|
|
|
马利克 4u 写道: |
我可以编写一个COBOL程序,使用Round Robin方法将文件拆分为多个文件。 |
那么,为什么还没有这样做呢?我曾经在午餐时间之前编写了一个小型的CICS在线查询系统(五个程序,两个BMS屏幕和两个交易)。 (对真的!)
马利克 4u 写道: |
但是我正在寻找SORT解决方案。 |
<cynical mode>
这应该由这里的某人提供...
</cynical mode> |
|
回到顶部 |
|
 |
加里·卡罗尔
高级会员
加入时间:2006年5月8日 职位:1100 所在地:爱尔兰都柏林
|
|
|
|
您应该寻找“智能DFSORT技巧”。。。
加里 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
DFSORT入门 展示了如何做。 DFSORT应用程序编程指南 展示了如何做。的 智能技巧 确实显示了五(六或十)种方法。
我可以肯定地确定SyncSORT也记录了如何做。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
不幸的是,聪明的把戏显示蹲下
和SPLIT及其亲戚(ASIS)不会这样做...
UIABW(除非我公然错误)
SPLIT和亲戚使用固定/预定数量的记录,
而不是记录组,其中每个组可以包含不同数量的记录
这是一个逻辑片段,可根据TS规则将其分为三个文件
(我没有清理输出以显示模数/余数逻辑)
码: |
****** *********** *******************数据顶部************ *********** *******
--- - - - - - - - - - - - - - - - - 3 Line(s) not Displayed
000004 // S1 EXEC PGM=SORT
000005 // SYSPRINT DD SYSOUT = *
000006 // SYSOUT DD SYSOUT = *
000007 // SORTIN DD *
000008 XML 1 1
000009 XML 1 2
000010
000011 XML 2 1
000012 XML 2 2
000013 XML 2 3
000014
000015 XML 3 1
000016 XML 3 2
000017 XML 3 3
000018 XML 3 4
000019
000020 XML 4 1
000021 XML 4 2
000022 XML 4 3
000023 XML 4 4
000024 XML 4 5
000025
000026 XML 5 1
000027 XML 5 2
000028
000029 XML 6 1
000030 XML 6 2
000031 XML 6 3
000032
000033 XML 7 1
000034 XML 7 2
000035 XML 7 3
000036 XML 7 4
000037
000038 //排序 DD SYSOUT=*
000039 //输出1 DD SYSOUT = *
000040 // OUT2 DD SYSOUT = *
000041 //输出3 DD SYSOUT = *
000042 //系统 DD *
000043 OPTION COPY
000044 INREC IFTHEN=(WHEN=GROUP,END=(1,1,CH,EQ,C' '),
000045 PUSH=(11:ID=5)),
000046 IFTHEN=(WHEN=INIT,
000047 OVERLAY=(16:(11,5,ZD,DIV,+3),TO=ZD,LENGTH=5,
000048 21:(16,5,ZD,MUL,+3),TO=ZD,LENGTH=5,
000049 26:(11,5,ZD,SUB,21,5,ZD),TO=ZD,LENGTH=5))
000050 OUTFIL FNAMES = OUT1,INCLUDE =(26,5,ZD,EQ,1)
000051 OUTFIL FNAMES = OUT2,INCLUDE =(26,5,ZD,EQ,2)
000052 OUTFIL FNAMES = OUT3,INCLUDE =(26,5,ZD,EQ,0)
****** *********** *****************数据底部************* *********** **** |
结果 ...
OUT1
码: |
*********** *********** ****************数据顶部************** *********** *********
XML 1 1 00001000000000000001
XML 1 2 00001000000000000001
00001000000000000001
XML 4 1 00004000010000300001
XML 4 2 00004000010000300001
XML 4 3 00004000010000300001
XML 4 4 00004000010000300001
XML 4 5 00004000010000300001
00004000010000300001
XML 7 1 00007000020000600001
XML 7 2 00007000020000600001
XML 7 3 00007000020000600001
XML 7 4 00007000020000600001
00007000020000600001
*********** *********************数据底部*************** *********** ****** |
OUT2
*********** ***************************数据顶部************** *********** *********
码: |
XML 2 1 00002000000000000002
XML 2 2 00002000000000000002
XML 2 3 00002000000000000002
00002000000000000002
XML 5 1 00005000010000300002
XML 5 2 00005000010000300002
00005000010000300002
*********** *********************数据底部*************** *********** ****** |
OUT3
码: |
*********** *********** ****************数据顶部************** *********** *********
XML 3 1 00003000010000300000
XML 3 2 00003000010000300000
XML 3 3 00003000010000300000
XML 3 4 00003000010000300000
00003000010000300000
XML 6 1 00006000020000600000
XML 6 2 00006000020000600000
XML 6 3 00006000020000600000
00006000020000600000
*********** *********************数据底部*************** *********** ****** |
对于五个部分,请使用5-5而不是3-3,并添加相对输出数据集 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
嗯....我没看这个问题。 |
|
回到顶部 |
|
 |
比尔·伍德格
主持人荣誉
加入时间:2011年3月9日 帖子:7311 位置:矩阵内部
|
|
|
|
有一个MOD功能可用。如果您愿意的话,OUTFIL之一可以指定SAVE,尽管这是100%的情况,但MOD,+ 3只能得到0、1和2的结果。 |
|
回到顶部 |
|
 |
恩里科·索里切蒂
高级主持人

已加入:2007年3月14日 帖子:10715 所在地:意大利
|
|
|
|
当您(在本例中为我)不阅读手册时会发生这种情况
更改后的控制卡
码: |
****** *********** *******************数据顶部************ *********** *******
- - - - - - - - - - - - - - - - - - - 41 Line(s) not Displayed
000042 //SYSIN DD *
000043 OPTION COPY
000044 INREC IFTHEN=(WHEN=GROUP,END=(1,1,CH,EQ,C' '),
000045 PUSH=(11:ID=5)),
000046 IFTHEN=(WHEN=INIT,
000047 OVERLAY=(16:(11,5,ZD,MOD,+3),TO=ZD,LENGTH=5))
000048 OUTFIL FNAMES = OUT1,INCLUDE =(16,5,ZD,EQ,1)
000049 OUTFIL FNAMES = OUT2,INCLUDE =(16,5,ZD,EQ,2)
000050 OUTFIL FNAMES = OUT3,INCLUDE =(16,5,ZD,EQ,0)
****** *********** *****************数据底部************* *********** **** |
变化的结果
码: |
*********** ***************************数据顶部************** *********** *********
XML 1 1 0000100001
XML 1 2 0000100001
0000100001
XML 4 1 0000400001
XML 4 2 0000400001
XML 4 3 0000400001
XML 4 4 0000400001
XML 4 5 0000400001
0000400001
XML 7 1 0000700001
XML 7 2 0000700001
XML 7 3 0000700001
XML 7 4 0000700001
0000700001
*********** *********************数据底部*************** *********** ******
*********** ***************************数据顶部************** *********** *********
XML 2 1 0000200002
XML 2 2 0000200002
XML 2 3 0000200002
0000200002
XML 5 1 0000500002
XML 5 2 0000500002
0000500002
*********** *********************数据底部*************** *********** ******
*********** ***************************数据顶部************** *********** *********
XML 3 1 0000300000
XML 3 2 0000300000
XML 3 3 0000300000
XML 3 4 0000300000
0000300000
XML 6 1 0000600000
XML 6 2 0000600000
XML 6 3 0000600000
0000600000
***********
*********** **********数据底部************************** ****** |
|
|
回到顶部 |
|
 |
|