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

NUMPROC(NOPDF)与NUMPROC(PDF)-它们如何工作?


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

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月21日星期六7:39 am
引用回复

大家好,

01 PIC X(08)。
01 B 图9(04).
01 C重新定义B 图9(08)COMP。

我使用带有NUMPROC(PDF)编译选项的以下语句使S0C7异常终止。
将'a'移动到A。==>前7个字节为空格,最后一个字节为小写而不是大写。
将A移动到C。>此语句导致S0C7

但是,如果使用编译选项NUMPROC(NOPDF,).

我所知道的是NUMPROC(PDF)将验证该标志,但是另一人不考虑该标志。

任何人或专家都可以告诉我'a'如何使NUMPROC异常退出( PDF)?那是COBOL如何对其进行详细处理?

非常感谢您考虑的任何人!
回到顶部
查看用户资料 发送私信
权力

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月21日星期六7:45 am
引用回复

你好

A应该是'BBBBBBBa'B表示空白而不是字符B。
换句话说,如果小写字母出现在最后一个字节中,则该语句将始终与带有NUMPROC(PDF)的S0C7一起结束,但是当A为'aBBBBBBB'时,无论B是否为空白,该陈述都不会结束。
我认为重点是最后一个字节,但我不知道它是如何工作或处理的?
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2009年3月21日星期六8:02上午
引用回复

您好,

为什么要完全使用NUMPROC?通常没有理由这样做-尤其是在已发布示例的情况下。

实际上,切勿使用已发布的示例-它是无效的。该示例完全没有连续性。 。 。如果目标是学习一些东西,我相信所学到的教训应该是,这样一个例子只是使学习的东西变得令人迷惑而已。

作为指导原则:重新定义的大小应相同。二进制不应该用于重新定义分区小数。在没有首先确保它们是数字的情况下,不应将Pix X字段移到数字字段。

如果您对NUMPROC感兴趣,请看这里:
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/igy3pg40/2.4.35?
回到顶部
查看用户资料 发送私信
权力

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月21日星期六9:08 am
引用回复

亲爱的迪克爵士,

首先,感谢您的答复和有用的链接。
实际上它是在我的工作环境中应用的,我也很困惑
为什么这样设计还有一件事,我不能删除NUMPROC(PDF)选项,因为它不应用于学习,而是应用于PROD。抄写本似乎没有改变。只是感到困惑,为什么最后一个字节小写会导致异常终止。
无论如何,的确非常感谢。 :)
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2009年3月21日星期六9:29 am
引用回复

您好,

引用:
抄写本似乎没有改变
如果发布实际的字帖可能会有所帮助。

引用:
只是感到困惑,为什么最后一个字节小写会导致异常终止
小写字母“ a”没有有效符号。为什么生产程序的文本中有几个空格,而后跟所发布的示例中的那样,将小写字母“ a”四处移动?

我们帮助的最好方法是让我们看到“真实”代码而不是一些类似的示例代码。
回到顶部
查看用户资料 发送私信
权力

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月21日星期六10:53 am
引用回复

迪克爵士,

实际上,产品中的值是“ 12345pge”,“ BBBBBBBa”只是在开发中进行测试。该帖在帖子中的定义与此类似。和代码与上面的代码相同。只是价值不同。
抱歉。目前,我现在无法发布它们... ^-^
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2009年3月21日,星期六11:28 am
引用回复

您好,

引用:
目前,我现在无法发布它们
如果可以的话,请张贴整个字帖(除非它非常大),并且对操作代码有疑问。

实地代码中使用字段B吗?

简单地说0c7是由于符号无效。
回到顶部
查看用户资料 发送私信
比尔·奥博伊尔

CICS主持人


已加入:2008年1月14日
帖子:2504
地点:美国乔治亚州亚特兰大

发布发表:2009年3月21日,星期六
引用回复

这是一个例子-

使用NUMPROC(NOPFD),每当比较两个压缩十进制字段时,就会发出一条CP(压缩/十进制比较)指令。如果一个字段具有“ C”符号小节,而另一个字段具有“ F”符号小节,则CP会将它们都视为“正”。如果两者的数字部分相同,则将引发“ EQUAL”条件代码。

使用NUMPROC(PFD),每当比较两个压缩十进制字段时,就会发出CLC(比较逻辑字符)指令而不是CP。如果一个字段具有“ C”符号小节,而另一个字段具有“ F”符号小节,则CLC将引发“ NOT EQUAL”条件代码,这会导致程序逻辑差异,即使每个字段的数字部分都是等于。

我不是NUMPROC(PFD)的忠实拥护者,尽管CLC比CP更有效,但我将保留默认值,并将其设为NUMPROC(NOPFD)。当打包的十进制数据不能被信任并且符号半字节可能不一样时,存在太多的风险。

同样,当发出“ NEXT”打包小数位指令(IE:AP)并且打包小数位数据无效时,CLC不会提高S0C7并使代码更糟。每当“ NEXT”压缩十进制指令中存在无效的压缩十进制数据时,具有无效压缩十进制数据的CP都会引发S0C7。

问候,
回到顶部
查看用户资料 发送私信
特里·海因兹

JCL主持人


已加入:2008年7月14日
帖子:1249
地点:美国明尼苏达州里奇菲尔德

发布发表:2009年3月22日,星期日,上午7:26
引用回复

“此外,当发出“ NEXT”打包小数指令(IE:AP)并且打包小数数据无效时,CLC不会提高S0C7并使代码更糟。
但愿如此。现在给我S0C7,让我解决问题的根源,而不要让垃圾进一步传播。
回到顶部
查看用户资料 发送私信
权力

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月22日,星期日,上午10:35
引用回复

迪克爵士,

抄写本是(使用这些字段的输出文件)
码:
10    XXXX                             PIC 9(04).           
10    YYYYY          REDEFINES XXXX    图9(08) COMP.

另一个字帖中的另一个字段(使用此字段的输入文件)
码:
10    A                                PIC X(08).


程序中工作存储区中的字段。
码:
10    WS-B                            图9(08).

该代码是
码:
移动A                               TO    WS-B
移动WS-B                            TO    YYYY

PROD中的A值为1201P3ge

是的,我同意您的看法,因为无效标志导致了中止,您能告诉我为什么吗?有效符号应该是什么?我对此完全感到困惑。非常感谢 !!
回到顶部
查看用户资料 发送私信
权力

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月22日,星期日,上午10:46
引用回复

比尔爵士& Terry,

感谢您的答复和您的意见。什么时候应该使用NUMPROC(PDF)?在这里,我们只是将一个字段移到另一个字段。在两个领域中没有其他过程。是的,我不知道为什么使用NUMPROC(PDF)。我别无选择。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2009年3月22日,星期日,上午11:03
引用回复

您好,

移动后YYYY的预期结果是什么?有人有期望值吗?

引用:
异常标志导致的异常终止,您能告诉我为什么吗
“输入”数据(1201P3ge)无效,不能用作数字字段。是否可能只应使用前4个位置(1201)?

在该过程的范围内,这些指令与模块的所有工作有关如何完成/贡献什么?

请注意,您的最后一个答复已“编码”(使用答复面板顶部的“ Code”标签)-这大大有助于提高可读性并保持对齐。准备帖子时,请使用“预览”来查看您的帖子,因为它会出现在论坛上-您可以多次预览。当您对帖子的外观感到满意时,请提交。
回到顶部
查看用户资料 发送私信
权力

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月22日,星期日,下午2:54
引用回复

迪克爵士,

谢谢您的好建议。我注意到了。
对于这个问题,也许我猜到原因。
例如,ebcdic表中的'a'是X'81',但是当将其移至二进制字段时,最后一个字节的符号无效,因为不接受8。
我只是测试了从(a)到从(x'81'到x'99')的'r',它们都不正确。然后从“ s”到“ z”,从“ A”到“ Z”进行测试,它们都是正确的。因为符号是A,C,D,E(EBCDIC表: www.legacyj.com/cobol/ebcdic.html)

再次感谢。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2009年3月22日,星期日,下午7:21
引用回复

您好,

很高兴听到进展 icon_smile.gif

我还是很困惑 1201P3ge 可能用作数字 icon_confused.gif
回到顶部
查看用户资料 发送私信
权力

新的用户


加入时间:2006年5月7日
帖子:35

发布发表:2009年3月23日星期一8:26上午
引用回复

迪克爵士

我们不在乎原始值是多少,但请确保不要批量放弃,否则将是一场噩梦。呵呵。
感谢您的上一个链接,以便我找出问题所在。 :)
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2009年3月23日星期一8:46 am
引用回复

不用客气-祝你好运 icon_smile.gif

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

 


类似主题
话题 论坛 回覆
没有新帖 TWS-ETT文件触发不起作用... IBM工具 4
没有新帖 SAS工作区-B37弯 JCL和VSAM 15
没有新帖 IBM Pcomm宏startmacro命令执行... IBM工具 0
没有新帖 RACF-子组-它们如何工作? JCL和VSAM 1
没有新帖 相同的REXX程序不适用于... 清单和REXX 5
搜索我们的论坛:

回到顶部