文件訪問模式
如果文件訪問模式搞不清楚,很容易出現各種錯誤。
文件訪問一般為三種,順序訪問,隨機訪問,動態訪問。
注意:有的帶有FILE STATUS是指定一個變量存放文件的狀態,并且這個變量要在WORKING-STORAGE SECTION中定義
順序訪問
對順序文件:被插入的記錄仍按相同的順序進行訪問。
ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. *主要使用FILE-CONTROL與I-O-CONTROL(較少使用) FILE-CONTROL. *SELECT必須是第一句,其他順序無關,film-name是程序中傳遞使用的文件名,相當于實際 *文件的一個別名,[OPTIONAL]可不使用,是用于執行可能不存在的文件。 *ASSIGN將file-name連結到實際的外部設備或文件 SELECT [OPTIONAL] file-name ASSIGN TO dd-name *可選,缺省為順序組織文件 ORGANIZATION IS SEQUENTIAL *順序文件只允許順序訪問 ACCESS MODE IS SEQUENTIAL
對索引文件:用于獲取記錄的參數是記錄的鍵值。
ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT file-name ASSIGN TO dd-name *索引文件 ORGANIZATION IS INDEXED *訪問方式,有三種,除SEQUENTIAL,還有RANDOM和DYNAMIC,若缺省默認*SEQUENTIAL ACCESS MODE IS SEQUENTIAL *RECORD KEY 指定文件的主記錄關鍵字,rec-key1應為定義文件的某個記錄區的字母數字數*據項目。這個關鍵字的描述及其在數據記錄中的位置應該與生成文件時所用的關鍵字一致。 RECORD KEY IS rec-key1 *如果文件有替換關鍵字,則其關鍵字用這個從句的短語指定,索引中允許重復的關鍵字采用*DUPLICATES。COBOL要求文件記錄定義rec-key2.重復關鍵字的長度及其在數據記錄中的位置應該與生成文件時一致,所有替換關鍵字應放在文件控制項中。 ALTERNATE RECORD KEY IS rec-key2 [WITH DUPLICATES]
對相對文件:記錄相對鍵用于檢索記錄。(較為常用)
ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT file-name ASSIGN TO dd-name *相對文件必須 ORGANIZATION IS RELATIVE *訪問方式有三種,缺省為SEQUENTIAL,其他還有RANDOM,DYNAMIC ACCESS MODE IS SEQUENTIAL *可選,意為文件讀取操作順序完成后,rec-key1用所讀取記錄的關鍵字更新,rec-key1應為*文件的記錄區中沒有的整數數據項。 RELATIVE KEY IS rec-key1

浙公網安備 33010602011771號