Created
April 6, 2020 21:14
-
-
Save DougieLawson/3955823b3cca52d579faefef350dc6d3 to your computer and use it in GitHub Desktop.
COBOL basics
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
000100 TITLE 'DOUGIE''S TEST COBOL PROGRAM' | |
000200 IDENTIFICATION DIVISION. | |
000300 PROGRAM-ID. DGL. | |
000400 ENVIRONMENT DIVISION. | |
000500 INPUT-OUTPUT SECTION. | |
000600 FILE-CONTROL. | |
000700 SELECT INPUT-FILE | |
000800 ASSIGN TO INFILE | |
000900 ORGANIZATION IS SEQUENTIAL. | |
001000 SELECT OUTPUT-FILE | |
001100 ASSIGN TO OUTFILE | |
001200 ORGANIZATION IS SEQUENTIAL. | |
001300 DATA DIVISION. | |
001400 FILE SECTION. | |
001500 FD INPUT-FILE | |
001600 BLOCK 0 RECORDS | |
001700* RECORD 80 CHARACTERS | |
001800 LABEL RECORDS OMITTED | |
001900 DATA RECORD IS INPUT-RECORD. | |
002000 01 INPUT-RECORD. | |
002100 05 IN-DATE PIC X(8). | |
002200 05 RECD-TYPE PIC X(1). | |
002300 88 H-RECORD VALUE 'H'. | |
002400 88 D-RECORD VALUE 'D'. | |
002500 88 T-RECORD VALUE 'T'. | |
002600 05 FILLER PIC X(1) . | |
002700 05 IN-TEXT PIC X(60). | |
002800 05 FILLER PIC X(10). | |
002900 FD OUTPUT-FILE | |
003000 BLOCK 0 RECORDS | |
003100 RECORD 80 CHARACTERS | |
003200 LABEL RECORDS OMITTED | |
003300 DATA RECORD IS OUTPUT-RECORD. | |
003400 01 OUTPUT-RECORD. | |
003500 05 RECORD-TYPE PIC X(8). | |
003600 88 HEADER-RECORD VALUE ' HEADER '. | |
003700 88 DATA-RECORD VALUE '* DATA *'. | |
003800 88 TRAILER-RECORD VALUE ' TRAILER'. | |
003900 05 FILLER PIC X(2) VALUE ' '. | |
004000 05 OUT-TEXT PIC X(60). | |
004100 05 FILLER PIC X(2) VALUE ' '. | |
004200 05 OUT-DATE PIC X(8). | |
004300 WORKING-STORAGE SECTION. | |
004400 01 INPUT-FILE-EOF PIC X(5). | |
004500 88 EOF-MET VALUE 'E-O-F'. | |
004600 PROCEDURE DIVISION. | |
004700 PROCEDURE-HEADER-000. | |
004800 OPEN INPUT INPUT-FILE | |
004900 OPEN OUTPUT OUTPUT-FILE | |
005000 PERFORM WITH TEST BEFORE UNTIL EOF-MET | |
005100 READ INPUT-FILE | |
005200 AT END | |
005300 SET EOF-MET TO TRUE | |
005400 END-READ | |
005500 IF NOT EOF-MET THEN | |
005600 MOVE IN-TEXT TO OUT-TEXT | |
005700 MOVE IN-DATE TO OUT-DATE | |
005800 IF D-RECORD THEN SET DATA-RECORD TO TRUE | |
005900 ELSE IF H-RECORD THEN SET HEADER-RECORD TO TRUE | |
006000 ELSE IF T-RECORD THEN SET TRAILER-RECORD TO TRUE | |
006100 END-IF | |
006200 END-IF | |
006300 END-IF | |
006400 WRITE OUTPUT-RECORD | |
006500 END-IF | |
006600 END-PERFORM | |
006700 CLOSE INPUT-FILE | |
006800 CLOSE OUTPUT-FILE | |
006900 STOP RUN. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment