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

COBOL VS SORT实用程序,用于文件格式化


IBM大型机论坛 -> COBOL程式设计
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
Pradeepv

新的用户


加入:2020年11月15日
帖子:1
地点:印度

 发布 发表:星期日十一月15,2020 11:05下午
引用回复

我需要重新格式化记录(如果是PS文件)。我知道构建分类卡是最简单的方法。但是,我不想为必须重新格式化的每个文件创建500+排序卡。当我不必对文件排序时,只需重新格式化记录中的字段,其中每个记录可以有3000多个字段,哪个有效? COBOL PGM或分拣卡?
回到顶部
查看用户资料 发送私信
谢尔盖肯

活跃成员


已加入:2008年4月29日
职位:937
所在地:马里兰

 发布 发表:2020年11月16日星期一4:01上午
引用回复

通常,为SORT实用程序创建的代码总量应比详细的COBOL代码少得多。

1.需要创建“记录描述”作为SORT的SYMNAMES成员。它在功能上等同于相同记录的COBOL抄写本。如果已经存在抄写本,那么创建一个REXX脚本将其从COBOL格式转换为SYMNAMES格式就没什么大不了的。
码:
* XXXXXXX_RECORD的SYMNAMES COPYBOOK
$ RDWLEN,BI,*,2   如果RECFM = VB则记录长度
$ RDWFLAG,BI,*,2     如果RECFM = VB,则标记字段
FIELDaaa,CH,*,30 来自PIC X(30)
PIC S9的FIELDbbb,PD,*,5(7)V99 COMP-3
FIELDccc,FI,*,2 从PIC S9(4) COMP-1
FIELDddd,ZD,*,9 从PIC S9(7)V99
。 。 。等。 。 。


2.需要在SORT控制语句的任何BUILD参数中使用所需的转换
码:
 INREC BUILD=($RDWLEN,$RDWFLAG,
          FIELDaaa,      no conversion
          FIELDbbb,CH,EDIT=(STTTTTTT.TT),SIGNS=(,-),   
          FIELDccc,CH,EDIT=(TTTTT), unpack binary
          FIELDddd,CH,EDIT=(STTTTTTT.TT),SIGNS=(,-),
 。 。 。 。 。等。 。 。 。 。
回到顶部
查看用户资料 发送私信
加里·卡罗尔

高级会员


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

 发布 发表:2020年11月16日星期一1:54 pm
引用回复

引用:
如果已经存在抄写本,那么创建一个REXX脚本将其从COBOL格式转换为SYMNAMES格式就没什么大不了的。


看到: ibmmainframes.com/about49973.html

加里
回到顶部
查看用户资料 发送私信
谢尔盖肯

活跃成员


已加入:2008年4月29日
职位:937
所在地:马里兰

 发布 发表于:星期二2020年11月17日上午1:34
引用回复

虽然我每天不使用任何工具,但我却遗漏了许多语法技巧。

正确的语法必须是
1.
码:
* XXXXXXX_RECORD的SYMNAMES COPYBOOK
$ RDWLEN,*,2,BI   如果RECFM = VB则记录长度
$ RDWFLAG,*,2,BI   如果RECFM = VB,则标记字段
FIELDaaa,*,30,CH   from PIC X(30)
FIELDbbb,*,5,PD   from PIC S9(7)V99 COMP-3
FIELDccc,*,2,FI     from PIC S9(4) COMP-1
FIELDddd,*,9,ZD    从PIC S9(7)V99
。 。 。等。 。 。


2.
码:
 INREC BUILD=($RDWLEN,$RDWFLAG,
          FIELDaaa,      no conversion
          FIELDbbb,PD,EDIT=(STTTTTTT.TT),SIGNS=(,-),     
          FIELDccc,FI,EDIT=(TTTTT), unpack binary
          FIELDddd,ZD,EDIT=(STTTTTTT.TT),SIGNS=(,-),
 。 。 。 。 。等。 。 。 。 。


对不起,错误
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2575
地点:美国纽约

 发布 发表:星期二2020年11月17日下午6:41
引用回复

Pradeepv 写道:
我需要重新格式化记录(如果是PS文件)。我知道构建分类卡是最简单的方法。但是,我不想为必须重新格式化的每个文件创建500+排序卡。当我不必对文件排序时,只需重新格式化记录中的字段,其中每个记录可以有3000多个字段,哪个有效? COBOL PGM或分拣卡?

您打算如何编写一个适合所有500多种格式的程序?如果您通过SORT进行操作,则工作量较少。如果您不想进行排序,请使用选项副本,这样就可以了。
回到顶部
查看用户资料 发送私信
普里诺
警告:1

高级会员


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

 发布 发表:星期二2020年11月17日下午7:03
引用回复

两本COBOL字帖,一本对应。您想要多短?
回到顶部
查看用户资料 发送私信
菲尔比(Phrzby Phil)

高级会员


已加入:2006年10月31日
帖子:1015
地点:弗吉尼亚州里士满

 发布 发表于:2020年11月18日星期三凌晨3:42
引用回复

MOVE CORRESPONDING不处理OCCURS。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
没有新帖 将匹配的记录写入输出文件 DFSORT / ICETOOL 1
没有新帖 建立排序键 DFSORT / ICETOOL 3
没有新帖 比较文件记录计数百分比... DFSORT / ICETOOL 4
没有新帖 比较两个文件以查找位置/日期... 同步排序 2
没有新帖 很大排序失败-寻求识别... DFSORT / ICETOOL 7
搜索我们的论坛:

回到顶部