您好我正在從tutorialpoints學習cobol,並從那裏的每個程序工作,因爲我已經在OpenCobolIDE(有些需要一點編輯)測試它們。然後我遇到了文件處理章節,並在那裏程序有很多錯誤。我設法重寫了程序,直到它沒有顯示任何錯誤,但它什麼也沒有做。Cobol:找不到文本文件的入口點
這裏是我的代碼:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT STUDENT ASSIGN TO
'C:\Cobol\FIle Handling\input.txt'
ORGANIZATION IS INDEXED
ACCESS IS RANDOM
RECORD KEY IS STUDENT-ID
FILE STATUS IS FS.
DATA DIVISION.
FILE SECTION.
FD STUDENT.
01 STUDENT-FILE.
05 STUDENT-ID PIC 9(5).
05 NAME PIC A(25).
WORKING-STORAGE SECTION.
01 WS-STUDENT-FILE.
05 WS-STUDENT-ID PIC 9(5).
05 WS-NAME PIC A(25).
01 FS PIC 9(02).
PROCEDURE DIVISION.
OPEN I-O STUDENT.
MOVE 20005 TO STUDENT-ID.
READ STUDENT RECORD INTO WS-STUDENT-FILE
KEY IS STUDENT-ID
INVALID KEY DISPLAY 'Invalid Key'
NOT INVALID KEY DISPLAY WS-STUDENT-FILE
END-READ.
CLOSE STUDENT.
STOP RUN.
這是文本文件:
20003 Mohtashim M.
20004 Nishant Malik
20005 Amitabh Bachhan
結果應該是全文:
20005 Amitabh Bachhan
JCL是否設置正確?我的猜測是,您在嘗試打開文件時出現錯誤。 (根據程序)它不存在或它是空的。因爲這個程序沒有檢查任何狀態碼,所以不可能告訴。添加一些檢查,看看文件是否打開。 – SaggingRufus
@SaggingRufus它是OpenCOBOL(幾年前改名爲GnuCOBOL)。不涉及JCL :-) –
你不能只有一個文本文件,並將其用作索引文件。如果您編寫另一個小型COBOL程序來創建索引文件(輸入現有文件,將每條記錄寫入索引文件),並假設已安裝「索引文件支持」,則需要更改上述程序以引用新索引文件,然後應該工作。你幾乎可以肯定在OPEN上有一個非零的FILE STATUS,而READ,就像@SaggingRufus已經提示的那樣。在READ上指出你正在進行密鑰訪問是很好的。 –