2010-03-28 55 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」。但該文件需要放在磁帶或假裝磁帶的設備上。