IBM大型机论坛索引
 
 登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答  寄存器
 

将文件分成5个


IBM大型机论坛 -> JCL& VSAM
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
马利克 4u

新的用户


已加入:2008年9月17日
职位:75
地点:班加罗尔

 发布 发表:2015年7月15日星期三10:13下午
引用回复

你好

我有一个将文件分割成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
位置:矩阵内部

 发布 发表于:2015年7月16日,星期四
引用回复

看看OUTFIL SPLIT及其表亲,选择一种适合您的表壳。
回到顶部
查看用户资料 发送私信
尼克·克劳斯顿

全球主持人


加入时间:2007年5月10日
帖子:2455
地点:英国汉普郡

 发布 发表于:星期四七月16,2015 3:22上午
引用回复

您无法使用JCL做到这一点。您是否想要一种分类解决方案?如果是这样,您为什么不在适当的分类论坛中发布?
回到顶部
查看用户资料 发送私信
马利克 4u

新的用户


已加入:2008年9月17日
职位:75
地点:班加罗尔

 发布 发表于:2015年7月16日,星期四,上午9:36
引用回复

感谢您的快速回复。

我可以编写一个COBOL程序,使用Round Robin方法将文件拆分为多个文件。但是我正在寻找SORT解决方案。

谢谢,
马利克
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

 发布 发表:2015年7月16日(星期四)下午12:15
引用回复

您完成了我的建议吗?
回到顶部
查看用户资料 发送私信
彼得·荷兰

全球主持人


已加入:2009年10月27日
帖子:2475
所在地:荷兰,阿姆斯特尔芬

 发布 发表:2015年7月16日(星期四)下午12:40
引用回复

引用:
使用Round Robin将文件拆分为多个文件


据我所知,RR用于将中间排序文件合并为一个,而不是拆分一个文件。

跟进比尔的建议。
回到顶部
查看用户资料 发送私信
普里诺
警告:1

高级会员


已加入:2009年2月7日
职位:1241
地点:立陶宛维尔纽斯

 发布 发表于:2015年7月16日,星期四2:35 pm
引用回复

马利克 4u 写道:
我可以编写一个COBOL程序,使用Round Robin方法将文件拆分为多个文件。

那么,为什么还没有这样做呢?我曾经在午餐时间之前编写了一个小型的CICS在线查询系统(五个程序,两个BMS屏幕和两个交易)。 (对真的!)

马利克 4u 写道:
但是我正在寻找SORT解决方案。

<cynical mode>
这应该由这里的某人提供...
</cynical mode>
回到顶部
查看用户资料 发送私信
加里·卡罗尔

高级会员


加入时间:2006年5月8日
职位:1100
所在地:爱尔兰都柏林

 发布 发表:2015年7月16日,星期四,下午5:01
引用回复

引用:
但是我正在寻找SORT解决方案。


您应该寻找“智能DFSORT技巧”。。。

加里
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

 发布 发表:2015年7月16日,星期四,下午5:30
引用回复

DFSORT入门 展示了如何做。 DFSORT应用程序编程指南 展示了如何做。的 智能技巧 确实显示了五(六或十)种方法。

我可以肯定地确定SyncSORT也记录了如何做。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

 发布 发表:2015年7月16日,星期四,下午6:45
引用回复

不幸的是,聪明的把戏显示蹲下
和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
位置:矩阵内部

 发布 发表于:2015年7月16日,星期四,7:46 pm
引用回复

嗯....我没看这个问题。
回到顶部
查看用户资料 发送私信
比尔·伍德格

主持人荣誉


加入时间:2011年3月9日
帖子:7311
位置:矩阵内部

 发布 发表于:2015年7月16日,星期四,7:51 pm
引用回复

有一个MOD功能可用。如果您愿意的话,OUTFIL之一可以指定SAVE,尽管这是100%的情况,但MOD,+ 3只能得到0、1和2的结果。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

 发布 发表于:2015年7月16日,星期四,7:57 pm
引用回复

引用:
有一个MOD功能可用。

当您(在本例中为我)不阅读手册时会发生这种情况 icon_biggrin.gif

更改后的控制卡

码:

 ****** *********** *******************数据顶部************ *********** *******
 - - -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 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
***********
*********** **********数据底部************************** ******
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> JCL& VSAM

 


类似主题
话题 论坛 回覆
该主题已锁定:您无法编辑帖子或回复。 将匹配的记录写入输出文件 DFSORT / ICETOOL 11
没有新帖 比较文件记录计数百分比... DFSORT / ICETOOL 4
没有新帖 比较两个文件以查找位置/日期... 同步排序 2
没有新帖 将文件从PD转换为显示... 同步排序 4
没有新帖 RECFM = U磁带文件的记录数 DFSORT / ICETOOL 17
搜索我们的论坛:


回到顶部