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.
3万+



被折叠的 条评论
为什么被折叠?



