查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
阿卜杜拉菲
活跃用户
已加入:2009年9月14日 职位:184 地点:哥印拜陀
|
|
|
|
我有一个包含两个记录的文件,如下所示:
记录1:ABDUL00000000000000ABDULMMMMMMMMMMMMMMMABDBDJJJJJJJJJJJJJJ
记录2:OOOOOOOOOOOOABDULIIIIIIIIIIIABDULNNNNABDULQQQQQQQQQQQQQQQQQQQQQ
请给我一个jcl,从两个记录中查找名称“ ABDUL”的出现,以便输出应为6。请注意,文字“ ABDUL”位于给定的两个记录中的不同列 |
|
回到顶部 |
|
 |
厚采煤机
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
你好,
为什么在这里再次发布?
那么在论坛的IMS部分中的相同请求呢? 。 。
d |
|
回到顶部 |
|
 |
弗兰克·雅格
DFSORT开发人员

已加入:2005年2月15日 帖子:7129 地点:加利福尼亚州圣何塞。
|
|
|
|
阿卜杜勒
输入文件的RECFM和LRECL是什么?
在记录中可以找到ABDUL的最大次数是多少?
最大记录数是2吗?
输出将是带有计数的一条记录吗?还是原始记录加上计数的额外记录?还是什么?显示您输入示例的确切预期输出。 |
|
回到顶部 |
|
 |
阿卜杜拉菲
活跃用户
已加入:2009年9月14日 职位:184 地点:哥印拜陀
|
|
|
|
RECFM是FB,LRECL为80。最多可以有100条记录。我只想在每个记录中找到“ ABDUL”的计数。
这是我的要求。 |
|
回到顶部 |
|
 |
弗兰克·雅格
DFSORT开发人员

已加入:2005年2月15日 帖子:7129 地点:加利福尼亚州圣何塞。
|
|
|
|
再次:
引用: |
输出将是带有计数的一条记录吗?还是原始记录加上计数的额外记录?还是什么?显示您输入示例的确切预期输出。 |
|
|
回到顶部 |
|
 |
阿卜杜拉菲
活跃用户
已加入:2009年9月14日 职位:184 地点:哥印拜陀
|
|
|
|
输入应与我发布的输入相同:
输入文件:
ABDUL00000000000000ABDULMMMMMMMMMMMMMMMABDULJJJJJJJJJJJJJJ
OOOOOOOOOOABDULIIIIIIIIIIIABDULNNNNABDULQQQQQQQQQQQQQQQQQ
输出文件:
“ ABDUL”的计数是:6
This is how my output file has to look. Please give me a JCLto find it out |
|
回到顶部 |
|
 |
弗兰克·雅格
DFSORT开发人员

已加入:2005年2月15日 帖子:7129 地点:加利福尼亚州圣何塞。
|
|
|
|
您可以使用如下所示的DSORT作业来完成所需的工作:
码: |
// S1 EXEC PGM=SORT
// SYSOUT DD SYSOUT=*
// SORTIN DD DSN = ... input file (FB/80)
// SORTOUT DD DSN = ... output file (FB/30)
// SYSIN DD *
OPTION COPY
INREC IFOUTLEN=5,
IFTHEN=(WHEN=INIT,PARSE=(%01=(STARTAT = C'ABDUL',FIXLEN = 5),
%02=(STARTAT = C'ABDUL',FIXLEN = 5),
%03=(STARTAT = C'ABDUL',FIXLEN = 5),
%04=(STARTAT = C'ABDUL',FIXLEN = 5),
%05=(STARTAT = C'ABDUL',FIXLEN = 5),
%06=(STARTAT = C'ABDUL',FIXLEN = 5),
%07=(STARTAT = C'ABDUL',FIXLEN = 5),
%08=(STARTAT = C'ABDUL',FIXLEN = 5),
%09=(STARTAT = C'ABDUL',FIXLEN = 5),
%10=(STARTAT = C'ABDUL',FIXLEN = 5),
%11=(STARTAT = C'ABDUL',FIXLEN = 5),
%12=(STARTAT = C'ABDUL',FIXLEN = 5),
%13=(STARTAT = C'ABDUL',FIXLEN = 5),
%14=(STARTAT = C'ABDUL',FIXLEN = 5),
%15=(STARTAT = C'ABDUL',FIXLEN = 5),
%16=(STARTAT = C'ABDUL',FIXLEN = 5)),
BUILD=(%01,%02,%03,%04,%05,%06,%07,%08,
%09,%10,%11,%12,%13,%14,%15,%16)),
IFTHEN=(WHEN=INIT,FINDREP=(IN = C'ABDUL',OUT = C'00001')),
IFTHEN=(WHEN=INIT,
建造=(1,5,UFF,ADD,6,5,UFF,ADD,11,5,UFF,ADD,16,5,UFF,ADD,
21,5,UFF,ADD,26,5,UFF,ADD,31,5,UFF,ADD,36,5,UFF,ADD,
41,5,UFF,ADD,46,5,UFF,ADD,51,5,UFF,ADD,56,5,UFF,ADD,
61,5,UFF,ADD,66,5,UFF,ADD,71,5,UFF,ADD,76,5,UFF,
TO=ZD,LENGTH=5))
完全删除,结点,
建造=(30X),
TRAILER1=(“计数”为“ ABDUL”: ',TOT=(1,5,ZD,M10,LENGTH=5))
/ *
|
|
|
回到顶部 |
|
 |
阿卜杜拉菲
活跃用户
已加入:2009年9月14日 职位:184 地点:哥印拜陀
|
|
|
|
你好
谢谢你的帮助。该代码工作正常。
有没有更乐观的方法来执行我的手术,或者这是我们唯一的方法吗? |
|
回到顶部 |
|
 |
厚采煤机
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
你好,
“乐观”-可能最佳?
您要更改提供的代码中的什么? |
|
回到顶部 |
|
 |
外籍人士
全球主持人

已加入:2007年3月14日 帖子:8794 地点:威尔士威尔士
|
|
|
|
如果您想到Frank是在IBM内部开发和维护DFSORT / ICETOOL的人,并且他为问题提供了解决方案,那么他的方式肯定是最优化/乐观/眼科解决方案。 |
|
回到顶部 |
|
 |
弗兰克·雅格
DFSORT开发人员

已加入:2005年2月15日 帖子:7129 地点:加利福尼亚州圣何塞。
|
|
|
|
引用: |
有没有更乐观的方法来执行我的操作,或者这是我们唯一的方法吗? |
好吧,您当然可以编写自己的程序或退出执行该程序。这是否更乐观(由原文如此)由您确定。 |
|
回到顶部 |
|
 |
阿卜杜拉菲
活跃用户
已加入:2009年9月14日 职位:184 地点:哥印拜陀
|
|
|
|
好吧,坦率我只执行了您的代码。非常感谢。 |
|
回到顶部 |
|
 |
沙欣·卡洛奇(Shaheen Kalokhe)
新的用户
已加入:2008年2月21日 帖子:21 地点:印度
|
|
|
|
坦率地说,以下语句会做什么?
IFTHEN =(当WHEN = INIT,PARSE =(%01 =(STARTAT = C'ABDUL',FIXLEN = 5),
%02 =(STARTAT = C'ABDUL',FIXLEN = 5),
%03 =(STARTAT = C'ABDUL',FIXLEN = 5),
%04 =(STARTAT = C'ABDUL',FIXLEN = 5),
%05 =(STARTAT = C'ABDUL',FIXLEN = 5),
%06 =(STARTAT = C'ABDUL',FIXLEN = 5),
%07 =(STARTAT = C'ABDUL',FIXLEN = 5),
%08 =(STARTAT = C'ABDUL',FIXLEN = 5),
%09 =(STARTAT = C'ABDUL',FIXLEN = 5),
%10 =(STARTAT = C'ABDUL',FIXLEN = 5),
%11 =(STARTAT = C'ABDUL',FIXLEN = 5),
%12 =(STARTAT = C'ABDUL',FIXLEN = 5),
%13 =(STARTAT = C'ABDUL',FIXLEN = 5),
%14 =(STARTAT = C'ABDUL',FIXLEN = 5),
%15 =(STARTAT = C'ABDUL',FIXLEN = 5),
%16 =(STARTAT = C'ABDUL',FIXLEN = 5)),
%01,%02 ....%16的用途是什么。 |
|
回到顶部 |
|
 |
弗兰克·雅格
DFSORT开发人员

已加入:2005年2月15日 帖子:7129 地点:加利福尼亚州圣何塞。
|
|
回到顶部 |
|
 |
沙欣·卡洛奇(Shaheen Kalokhe)
新的用户
已加入:2008年2月21日 帖子:21 地点:印度
|
|
|
|
谢谢弗兰克的答复。我一定会看看您提供的链接。 |
|
回到顶部 |
|
 |
|