Skip to content

Instantly share code, notes, and snippets.

@kwdowicz
Created January 26, 2024 18:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kwdowicz/be139279a5e8f7c6e5503ad70c226d21 to your computer and use it in GitHub Desktop.
Save kwdowicz/be139279a5e8f7c6e5503ad70c226d21 to your computer and use it in GitHub Desktop.
*****************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. RW1.
AUTHOR. Kamil Wdowicz.
*
* Example on how to read from and write to files.
*
*****************************************************************
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INFILE ASSIGN TO INPUTF
ORGANIZATION IS SEQUENTIAL
FILE STATUS IS INFILE-FS.
SELECT OUTFILE ASSIGN TO OUTPUTF
ORGANIZATION IS SEQUENTIAL
FILE STATUS IS OUTFILE-FS.
DATA DIVISION.
FILE SECTION.
FD INFILE RECORDING MODE F.
01 INFILE-STRUCT.
05 NAME PIC X(8).
05 FILLER PIC X(1).
05 NICK PIC X(6).
05 FILLER PIC X(65) VALUE SPACES.
FD OUTFILE RECORDING MODE F.
01 OUTFILE-STRUCT.
05 NUM-O PIC 9(3).
05 FILLER PIC X(1).
05 NAME-O PIC X(8).
05 FILLER PIC X(1).
05 NICK-O PIC X(6).
05 FILLER PIC X(61) VALUE SPACES.
WORKING-STORAGE SECTION.
01 WS-EOF PIC A(1).
01 INFILE-FS PIC X(2).
01 OUTFILE-FS PIC X(2).
01 WS-NUM PIC 9(3).
PROCEDURE DIVISION.
OPEN-FILES.
OPEN INPUT INFILE.
OPEN OUTPUT OUTFILE.
MOVE 0 TO WS-NUM.
READ-WRITE-DISPLAY-UNTIL-END.
PERFORM READ-FILE.
PERFORM UNTIL WS-EOF = 'Y'
PERFORM INCREASE-NUM
PERFORM WRITE-FILE
PERFORM DISPLAY-OUT
PERFORM READ-FILE
END-PERFORM.
CLOSE-STOP.
CLOSE INFILE.
CLOSE OUTFILE.
STOP RUN.
READ-FILE.
READ INFILE
AT END MOVE 'Y' TO WS-EOF
END-READ.
INCREASE-NUM.
ADD 1 TO WS-NUM.
WRITE-FILE.
MOVE NAME TO NAME-O
MOVE NICK TO NICK-O
WRITE OUTFILE-STRUCT.
DISPLAY-OUT.
DISPLAY OUTFILE-STRUCT.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment