2010-03-28 52 views
0

我有一个PS文件以相反的顺序读取,并相应地进行处理。我们有办法提及在COBOL模块的FD中以相反顺序读取文件吗?或者我们有什么可以使用SORT实现相同的功能?如何以相反的顺序读取PS文件?

注意:将记录读入缓冲区(数组)并以相反的顺序使用它是首先想到的想法,但这种方式对于具有数百万条记录的文件不起作用。

您的建议将不胜感激。

回答

1

我不认为在COBOL中有这样做的标准方法。但是,如果文件包含固定长度的记录,则可以尝试将其作为相关文件进行处理,然后按降序编号运行。按照您的建议,另一种选择是按照相反的顺序排序,然后按照“正常”的方式处理。

+0

试图按照您的建议对其进行排序,但没有奏效。排序没有导致它的确切反向。仍在搜索选项。请让我知道你是否找到一个。 – 2010-03-31 03:07:23

+0

暂时向INREC中的每个记录添加一个序列号。按序号排序,降序。删除OUTREC/OUTFIL中的序列号。 “不寻常”的是,除了“向后读文件”,没有其他方法可以产生结果。 – 2013-01-26 14:33:58

0

某些版本的COBOL支持READ LAST语句以获取文件上的最后一条记录。然后使用READ PRIOR以相反的顺序读取文件。不确定你使用的是哪种COBOL版本。

0

如果文件所在的设备支持它,可以使用“OPEN INPUT fname REVERSED”。但该文件需要放在磁带或假装磁带的设备上。