Version 6 adds a header, footer, and counter.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO6.
AUTHOR. BILL ROGERS.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE
ASSIGN TO 'A:\NAMES.TXT'
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-FILE
ASSIGN TO 'A:\HELLO6.TXT'
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD IN-FILE
DATA RECORD IS IN-RECORD.
01 IN-RECORD.
05 IN-NAME PIC X(25).
FD OUT-FILE
DATA RECORD IS OUT-RECORD.
01 OUT-RECORD PIC X(40).
WORKING-STORAGE SECTION.
01 WS-LINE.
02 FILLER PIC X(9) VALUE SPACES.
02 FILLER PIC X(6) VALUE 'Hello '.
02 WS-NAME PIC X(25).
01 END-OF-FILE-FLAG PIC X.
01 HEADER-LINE.
02 FILLER PIC X(9) VALUE SPACES.
02 FILLER PIC X(31) VALUE 'Program Hello-6'.
01 FOOTER-LINE.
02 FILLER PIC X(18) VALUE
'Number of hellos: '.
02 FOOTER-COUNT PIC Z9.
02 FILLER PIC X(20) VALUE SPACES.
01 THE-COUNT PIC 9(2) VALUE ZERO.
PROCEDURE DIVISION.
MAINLINE.
PERFORM INITIALIZATION-ROUTINE.
PERFORM THE-LOOP
UNTIL END-OF-FILE-FLAG = 'Y'.
PERFORM EOJ-ROUTINE.
STOP RUN.
INITIALIZATION-ROUTINE.
OPEN INPUT IN-FILE.
OPEN OUTPUT OUT-FILE.
PERFORM PRINT-HEADERS.
READ IN-FILE
AT END MOVE 'Y' TO END-OF-FILE-FLAG.
THE-LOOP.
MOVE IN-NAME TO WS-NAME.
MOVE WS-LINE TO OUT-RECORD.
WRITE OUT-RECORD.
ADD 1 TO THE-COUNT.
READ IN-FILE
AT END MOVE 'Y' TO END-OF-FILE-FLAG.
EOJ-ROUTINE.
PERFORM PRINT-FOOTERS.
CLOSE IN-FILE.
CLOSE OUT-FILE.
PRINT-HEADERS.
MOVE HEADER-LINE TO OUT-RECORD.
WRITE OUT-RECORD.
MOVE SPACES TO OUT-RECORD.
WRITE OUT-RECORD.
PRINT-FOOTERS.
MOVE SPACES TO OUT-RECORD.
WRITE OUT-RECORD.
MOVE THE-COUNT TO FOOTER-COUNT.
MOVE FOOTER-LINE TO OUT-RECORD.
WRITE OUT-RECORD.