This is a serial code samples of how COBOL access dataset
Write Fixed-Length Record-Sequential Dataset
IDENTIFICATION DIVISION. PROGRAM-ID. WRITEF16. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT F16-FILE ASSIGN TO "DATA.F16" ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD F16-FILE LABEL RECORD STANDARD DATA RECORD DATAF16-REC. 01 DATAF16-REC. 03 F16-S-ID PIC X(02). 03 F16-S-NAME PIC X(04). 03 F16-S-VALUE PIC X(10). WORKING-STORAGE SECTION. PROCEDURE DIVISION. OPEN OUTPUT F16-FILE. MOVE "11" TO F16-S-ID. MOVE "AAAA" TO F16-S-NAME. MOVE "1234567890" TO F16-S-VALUE. WRITE DATAF16-REC. MOVE "22" TO F16-S-ID. MOVE "BBBB" TO F16-S-NAME. MOVE "123456789 " TO F16-S-VALUE. WRITE DATAF16-REC. MOVE "33" TO F16-S-ID. MOVE "CCCC" TO F16-S-NAME. MOVE "12345678" TO F16-S-VALUE. WRITE DATAF16-REC. CLOSE F16-FILE. STOP RUN.
Read Fixed-Length Record-Sequential Dataset
IDENTIFICATION DIVISION. PROGRAM-ID. READF16. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILE-F16 ASSIGN TO "DATA.F16" ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS IO-STATUS. DATA DIVISION. FILE SECTION. FD FILE-F16 LABEL RECORD STANDARD DATA RECORD DATAF16-REC. 01 DATAF16-REC. 03 F16-S-ID PIC X(02). 03 F16-S-NAME PIC X(04). 03 F16-S-VALUE PIC X(10). WORKING-STORAGE SECTION. 01 IO-STATUS PIC XX. 01 REC-COUNT PIC 9(6). PROCEDURE DIVISION. OPEN INPUT FILE-F16. IF IO-STATUS NOT = "00" DISPLAY "OPEN INPUT FAILED" DISPLAY "IO-STATUS =" IO-STATUS GO TO FIN-REL END-IF. READ-SEQUENTIAL. MOVE SPACES TO DATAF16-REC. READ MW-ENTREE NEXT AT END GO TO FIN-REL END-READ. IF IO-STATUS NOT = "00" DISPLAY "READ RECORD FAILED" DISPLAY "IO-STATUS =" IO-STATUS GO TO FIN-REL END-IF. PERFORM DISPLAY-RECORD THRU E-DISPLAY-RECORD. GO TO READ-SEQUENTIAL. FIN-REL. CLOSE MW-ENTREE. EXIT PROGRAM. STOP RUN. DISPLAY-RECORD. DISPLAY "RECORD" ": S-ID=[" F16-S-ID "]" ", S-NAME=[" F16-S-NAME "]" ", S-VALUE=[" F16-S-VALUE "]". E-DISPLAY-RECORD. EXIT.
Write Variable-Length Record-Sequential Dataset
IDENTIFICATION DIVISION. PROGRAM-ID. WRITEV16. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT V16-FILE ASSIGN TO "DATA.V16" ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD V16-FILE LABEL RECORD STANDARD RECORD is VARYING in SIZE from 1 to 16 DEPENDING ON DATAV16-REC-LEN DATA RECORD DATAV16-REC. 01 DATAV16-REC. 03 V16-S-ID PIC X(02). 03 V16-S-NAME PIC X(04). 03 V16-S-VALUE PIC X(10). WORKING-STORAGE SECTION. 01 DATAV16-REC-LEN PIC X(4) COMP-X. PROCEDURE DIVISION. OPEN OUTPUT V16-FILE. MOVE "11" TO V16-S-ID. MOVE "AAAA" TO V16-S-NAME. MOVE "1234567890" TO V16-S-VALUE. MOVE 16 TO DATAV16-REC-LEN. WRITE DATAV16-REC. MOVE "22" TO V16-S-ID. MOVE "BBBB" TO V16-S-NAME. MOVE "123456789 " TO V16-S-VALUE. MOVE 16 TO DATAV16-REC-LEN. WRITE DATAV16-REC. MOVE "33" TO V16-S-ID. MOVE "CCCC" TO V16-S-NAME. MOVE "12345678" TO V16-S-VALUE. MOVE 14 TO DATAV16-REC-LEN. WRITE DATAV16-REC. CLOSE V16-FILE. STOP RUN.
Read Variable-Length Record-Sequential Dataset
IDENTIFICATION DIVISION. PROGRAM-ID. READV16. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MW-ENTREE ASSIGN TO "DATA.V16" ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS IO-STATUS. DATA DIVISION. FILE SECTION. FD MW-ENTREE LABEL RECORD STANDARD RECORD is VARYING in SIZE from 1 to 16 DEPENDING ON DATAV16-REC-LEN DATA RECORD DATAV16-REC. 01 DATAV16-REC. 03 V16-S-ID PIC X(02). 03 V16-S-NAME PIC X(04). 03 V16-S-VALUE PIC X(10). WORKING-STORAGE SECTION. 01 DATAV16-REC-LEN PIC X(4) COMP-X. 01 IO-STATUS PIC XX. 01 REC-COUNT PIC 9(6). PROCEDURE DIVISION. OPEN INPUT MW-ENTREE. IF IO-STATUS NOT = "00" DISPLAY "OPEN INPUT FAILED" DISPLAY "IO-STATUS =" IO-STATUS GO TO FIN-REL END-IF. READ-SEQUENTIAL. MOVE SPACES TO DATAV16-REC. READ MW-ENTREE NEXT AT END GO TO FIN-REL END-READ. IF IO-STATUS NOT = "00" DISPLAY "READ RECORD FAILED" DISPLAY "IO-STATUS =" IO-STATUS GO TO FIN-REL END-IF. PERFORM DISPLAY-RECORD THRU E-DISPLAY-RECORD. GO TO READ-SEQUENTIAL. FIN-REL. CLOSE MW-ENTREE. EXIT PROGRAM. STOP RUN. DISPLAY-RECORD. DISPLAY "RECORD" ": LENGTH=[" DATAV16-REC-LEN "]" ", S-ID=[" V16-S-ID "]" ", S-NAME=[" V16-S-NAME "]" ", S-VALUE=[" V16-S-VALUE "]". E-DISPLAY-RECORD. EXIT.