File READ fails silently. Find why:
READ INPUT-FILE INTO WS-RECORD.
DISPLAY WS-RECORD.
Fix File Status Error
Problem Description
Expected Output
Should handle file errors
Hints
Always check FILE STATUS after file operations.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. FIXFILE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT-FILE ASSIGN TO "INPUT.DAT"
FILE STATUS IS WS-FILE-STATUS.
DATA DIVISION.
FILE SECTION.
FD INPUT-FILE.
01 INPUT-REC PIC X(80).
WORKING-STORAGE SECTION.
01 WS-RECORD PIC X(80).
01 WS-FILE-STATUS PIC XX.
PROCEDURE DIVISION.
OPEN INPUT INPUT-FILE.
IF WS-FILE-STATUS NOT = "00"
DISPLAY "OPEN ERROR: " WS-FILE-STATUS
STOP RUN
END-IF.
READ INPUT-FILE INTO WS-RECORD.
EVALUATE WS-FILE-STATUS
WHEN "00" DISPLAY "READ OK: " WS-RECORD
WHEN "10" DISPLAY "END OF FILE"
WHEN OTHER DISPLAY "READ ERROR: " WS-FILE-STATUS
END-EVALUATE.
CLOSE INPUT-FILE.
STOP RUN.
Explanation:
Always define and check FILE STATUS. 00=OK, 10=EOF, 35=file not found.