1. 程式人生 > 實用技巧 >檔案訪問模式

檔案訪問模式

如果檔案訪問模式搞不清楚,很容易出現各種錯誤。

檔案訪問一般為三種,順序訪問,隨機訪問,動態訪問。

注意:有的帶有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