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

有趣的Z / OS& COBOL Quirk


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

活跃用户


已加入:2006年12月5日
职位:171
地点:华盛顿州西雅图

发布发表:2007年9月27日,星期四,上午12:33
引用回复

我正在改造一个自2000年以来从未使用过的旧程序,并且发生了一些非常有趣的事情,可能会使其他人受益。

与大多数旧程序一样,该旧程序在FD区域中定义了输出今天双色球开奖结果。今天双色球开奖结果包含两部分:“标题”部分和“尾随”部分(由于缺乏更好的描述-请注意,这不是真实的标题和尾随今天双色球开奖结果;仅是单个今天双色球开奖结果的一部分)。

对于许多合格的“尾随”今天双色球开奖结果重复“标题”,而今天双色球开奖结果中唯一的区别是尾随信息。因此,该程序将一次构建标头信息,然后循环遍历一个部分以构建尾部部分,并为每次事件编写一条今天双色球开奖结果。

在测试时,我发现标头部分仅出现在系列的第一条今天双色球开奖结果上,而不是应该共享数据的后续今天双色球开奖结果。现在,这对于报表非常有用,但对于数据文件而言却不是。

发生了什么事? icon_question.gif 在Expiteitor中单步执行代码并在执行WRITE之后观看数据消失真的很奇怪!我从未听说过用COBOL编写的“破坏性”文章!

高级人员告诉我,Z / OS是动态分配FD存储区的,因此FD存储区在一次传递中可能不在第二遍。尽管工作存储保持静态。

解决方案是在“工作存储”中建立今天双色球开奖结果,然后将输出今天双色球开奖结果写入该区域。宾果游戏-效果很好,所有数据都显示出来。

每一天都是新的冒险..... icon_rolleyes.gif
回到顶部
查看用户资料 发送私信
CICS家伙

高级会员


已加入:2007年7月18日
帖子:2146
位置:在我的咖啡桌上

发布发表:2007年9月27日,星期四,上午12:40
引用回复

噢,我...您永远不会期望先前今天双色球开奖结果的数据在FD的01级别上,除非您正在编写unblock和单个缓冲区。
01只是对I / O缓冲区的一个dsect视图,它改变了块中每个今天双色球开奖结果的位置...这就是为什么有时“仅应用写入”对于较大的可变长度输出很好的原因。
e,Socker爸爸,您一定是个“年轻”...。
回到顶部
查看用户资料 发送私信
socker_dad

活跃用户


已加入:2006年12月5日
职位:171
地点:华盛顿州西雅图

发布发表:2007年9月28日星期五4:16上午
引用回复

icon_lol.gif

感谢您的年龄补充!

否-我已经编程大约20年了-我之前从未见过任何程序尝试重用FD存储。哦,我过着多么庇护的生活!

请参阅-我是一名优秀的程序员-我总是使用工作存储!
回到顶部
查看用户资料 发送私信
CICS家伙

高级会员


已加入:2007年7月18日
帖子:2146
位置:在我的咖啡桌上

发布发表:2007年9月28日星期五4:37上午
引用回复

socker_dad写道:
我是一个好的程序员-我总是使用工作存储!
事情发生了变化,但是当我了解到时,只要您不“期望”事情仍然存在,使用缓冲区就可以了。
工作存储或FD的01,这完全取决于您的需要和想要的...。 icon_wink.gif
回到顶部
查看用户资料 发送私信
TG墨菲

活跃用户


已加入:2007年3月23日
帖子:148
地点:加拿大渥太华

发布发表:2007年9月28日,星期五
引用回复

使用FD缓冲区时,必须注意不要在关闭文件后引用该缓冲区。我仍然记得我的COBOL老师在25年前警告过我们。我确实调试了某个人的问题,而这个问题正是由这个问题引起的。他们引用了缓冲区,但是缓冲区不再存在。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2007年9月28日星期五8:32下午
引用回复

你好,

我最近没有“尝试过”
引用:
使用FD缓冲区时,必须注意不要在关闭文件后引用该缓冲区。
但是很久以前,在关闭后引用缓冲区可能会导致异常终止-内存已释放并且地址变为无效。

写入后引用缓冲区,得到缓冲区那部分的内容-每次写入都会将位移重新放置到缓冲区中,以进行“下一次”写入。您可能会得到纯粹的垃圾和异常终止(如果幸运的话),或者您可能会得到先前写入中已经存在的任何数据-有时 非常 难以识别/解决。
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

发布发表:2007年9月28日星期五10:27 pm
引用回复

默认情况下,原始程序可能在bufno = 1的时间内运行。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2007年9月28日星期五11:36 pm
引用回复

引用:
默认情况下,原始程序可能在bufno = 1的时间内运行。
和lrecl = blksize。 。 。 。 icon_wink.gif
回到顶部
查看用户资料 发送私信
socker_dad

活跃用户


已加入:2006年12月5日
职位:171
地点:华盛顿州西雅图

发布发表:2007年9月29日,星期六2:58
引用回复

天哪-我想是时候投资养老院了.....现在会让我觉得自己很老!!! icon_lol.gif
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

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

嗯。 。认为这会让您感觉更年轻,而不是年龄更大。 。 。 。

d
回到顶部
查看用户资料 发送私信
CICS家伙

高级会员


已加入:2007年7月18日
帖子:2146
位置:在我的咖啡桌上

发布发表:2007年9月29日星期六上午3:52
引用回复

socker_dad写道:
天哪-我想是时候投资养老院了.....现在会让我觉得自己很老!!! icon_lol.gif
抱歉,您正在支付我的SS福利...咧...
在“ Old'n days”中,许多打印输出未阻塞,并且(当初我想不到)单个缓冲,以允许最后一次写入中的现有数据存在到下一次写入中...
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


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

发布发表:2007年9月29日星期六4:48 am
引用回复

曾几何时(不,这不会是童话),打印机和“打孔机”被称为“单位今天双色球开奖结果”设备-无法阻止。

这是罐装啤酒之后的,但是 道路 在铝之前,易开罐 icon_wink.gif
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> COBOL程式设计

 


类似主题
话题 论坛 回覆
该主题已锁定:您无法编辑帖子或回复。 将字段名称传递给COBOL程序 COBOL程式设计 10
没有新帖 COBOL性能调整 COBOL程式设计 6
没有新帖 JCL用于替换Cobol中的代码 JCL和VSAM 7
没有新帖 COBOL VS SORT实用程序,用于文件格式... COBOL程式设计 6
没有新帖 在COBOL创建中进行XML解析"h... COBOL程式设计 0
搜索我们的论坛:

回到顶部