查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
MainB
新的用户
加入:2005年11月3日 帖子:17
|
|
|
|
我需要在数据集中将一个字符串替换为另一个字符串。想要使用JCL做到这一点。
该文件具有如下所示的字段分隔符-> "," <-我希望将带有dblqt逗号dblqt的字符串替换为一个| (管道)字符。今天双色球开奖结果长度是400+。该字符串作为分隔符出现在今天双色球开奖结果中的每个字段之后。
我计划使用Fileaid,但一次只能处理255个字符。为了克服该问题,OI可以将今天双色球开奖结果拆分为多个语句。但是,实际上我可能会将其拆分为“,”之间的某个位置,从而无法替换它。 |
|
回到顶部 |
|
 |
拉米亚
活跃用户

已加入:2004年7月26日 帖子:104
|
|
|
|
您是否尝试过使用SORT实用程序?使用OUTREC语句的CHANGE和NOMATCH参数,只要知道字符串的确切位置,就应该可以将一个字符串更改为另一字符串。
如果输入字段等于搜索常量,则CHANGE子参数会将输入字段更改为重新格式化的输出今天双色球开奖结果中的替换常量。输入字段在输入侧保持不变。
NOMATCH指示如果输入字段,SyncSort应该如何响应
与搜索常量不匹配。如果未指定NOMATCH并且没有搜索常量与输入字段匹配,则排序处理将终止并显示一条错误消息。
例如:
OUTREC FIELDS =(16,2,
CHANGE =(13,C'NJ',C'NEW JERSEY',
C'NY',C'NEW YORK',
C'PA',C'PENNSYLVANIA')
NOMATCH =(C'不支持'))
有关语法和其他选项,请参考大型机中的QW。 |
|
回到顶部 |
|
 |
MainB
新的用户
加入:2005年11月3日 帖子:17
|
|
|
|
实际上,此“,”是字段终止符-因此它的位置不是固定的-根据字段的长度,它可以在任何地方。这是一个VB数据集。使用名称地址等字段-根据大小,“,”可以在任何地方 |
|
回到顶部 |
|
 |
凯文
活跃用户

已加入:2005年8月25日 职位:234
|
|
|
|
数据格式似乎是SAS程序或您自己内部编写的程序或以批处理模式运行的ISPF EDIT会话的理想选择。
当您说“使用JCL”时,您认为什么是有效的编程语言和/或实用程序? |
|
回到顶部 |
|
 |
MainB
新的用户
加入:2005年11月3日 帖子:17
|
|
|
|
感谢您的所有帮助-我确实找到了一种在JCL中使用fileaid来解决此问题的方法。我想避免编写SAS,COBOL,EASYTRIEVE等...
以防万一有人需要将其张贴在这里。
// STEP01 EXEC PGM = FILEAID
// SYSPRINT DD SYSOUT = *
// SYSLIST DD SYSOUT = *
// DD01 DD DISP = SHR,DSN = A.B.C.D
// DD01O DD DSN = X.Y,Z,
// DISP =(NEW,CATLG,DELETE),
// UNIT = DISK,SPACE =(CYL,(800,800),RLSE)
// *(TO,LENGTH,FROM)
// SYSIN DD *
$$ DD01 COPYALL EDIT =(1,5,X'7F',C''),<-将第一个“替换为null
EDITALL =(6,0,X'7F6B7F',C'|'),<-用|代替“,”
EDITALL =(400,0,X'7F',C''),<-用空值替换最后一个“
OUT=0
/ *
x'7F'为“
x'6B'为的十六进制,
1,5-表示从1开始-接下来的5个字节
6,0-表示从1开始到今天双色球开奖结果结束
400,0-表示从400开始直到今天双色球开奖结果结束
在每个字段的开头和结尾都有一个“”,在每个字段后都有一个“。”,并且必须删除第一个和最后一个双引号并将“,”替换为|。 |
|
回到顶部 |
|
 |
妻子
超级版主

加入:2003年5月30日 帖子:1592
|
|
|
|
嗨MainB,
感谢您与我们分享您的问题的解决方案。
我只是希望那里的每个人都能效法您的榜样,或者就所提供的解决方案提供反馈,或者在论坛中与其他人分享自己的解决方案。
再次感谢 |
|
回到顶部 |
|
 |
Sagar_mainframe
新的用户

已加入:2008年6月7日 帖子:34 地点:宾夕法尼亚州哈里斯堡
|
|
|
|
是否可以不使用“ FILEAID”? |
|
回到顶部 |
|
 |
超级
全球主持人

已加入:2004年4月26日 帖子:4650 地点:美国北卡罗来纳州罗利
|
|
|
|
您是否考虑过使用SYNCSORT或DFSORT的解决方案? |
|
回到顶部 |
|
 |
Sagar_mainframe
新的用户

已加入:2008年6月7日 帖子:34 地点:宾夕法尼亚州哈里斯堡
|
|
|
|
是的,但由于我的要求也与上述要求类似。
我想用给定今天双色球开奖结果的某些字段的空格替换)(。,/ \ + * @等特殊字符。
由于特殊字符的位置不固定,因此我们无法使用JCL在OUTREC语句中提及该位置。
最后,我正在考虑使用INSPECT动词编写一个COBOL批处理pgm。 |
|
回到顶部 |
|
 |
弗兰克·雅格
DFSORT开发人员

已加入:2005年2月15日 帖子:7129 地点:加利福尼亚州圣何塞
|
|
|
|
DFSORT现在具有查找和替换功能(FINDREP)。它与z / OS DFSORT V1R5 PTF UK90013一起提供(2008年7月)。
对于Mainb帖子中的示例,我们可以使用DFSORT控制语句,如下所示:
码: |
OPTION COPY
INREC FINDREP=(IN=C'","',OUT=C'|')
|
对于Sagar帖子中的示例,我们可以使用DFSORT控制语句,如下所示:
码: |
OPTION COPY
INREC FINDREP=(IN=(C')',C'(',C'。',C',',C'/',C'\',C'+',C'*',C'@'),
OUT=C' ')
|
有关新的FINDREP功能和PTF UK90013可用的其他新功能的完整详细信息,请参见:
使用[URL] BBCode进行外部链接 |
|
回到顶部 |
|
 |
|