GnuCOBOL 2.2.0 cob02.cob Sat Mar 30 09:52:56 2019 Page 0001 LINE PG/LN A...B............................................................ 000001 IDENTIFICATION DIVISION. 000002 PROGRAM-ID. cob02. 000003 * A GnuCOBOL program 000004 * On: 11/12/2017 000005 * By: Bill Blasingim 000006 * 000007 * This program reads variable length records. 000008 * Write fixed length records. 000009 * 000010 * This is a common format on PCs...lines ending in a control 000011 * character. 000012 * It uses the UNSTRING instruction to parse the input 000013 * 000014 Environment Division. 000015 Input-Output Section. 000016 File-Control. 000017 Select InFile Assign to 000018 "/home/bill/Mystuff/COBOL/data/customer.txt" 000019 Line Sequential. 000020 Select OutFile Assign to 000021 "./customer.out" 000022 Line Sequential. 000023 Data Division. 000024 File Section. 000025 FD InFile 000026 RECORD IS VARYING IN SIZE FROM 1 TO 65535 CHARACTERS 000027 DEPENDING ON infile-record-length. 000028 01 InRec. 000029 05 infile-data PIC X OCCURS 1 TO 65535 TIMES 000030 DEPENDING ON infile-record-length. 000031 000032 FD OutFile. 000033 01 OutRec. 000034 05 out-data PIC X(120). 000035 000036 Working-Storage Section. 000037 01 WS-section. 000038 05 infile-record-length pic 9(5) value 0. 000039 05 Filler Pic x value "N". 000040 88 EOF Value "Y". 000041 01 WS-Rec. 000042 05 ws-acct pic x(17). 000043 05 Filler pic x. 000044 05 ws-fld2 pic x. 000045 05 Filler pic x. 000046 05 ws-fld3 pic x. 000047 05 Filler pic x. 000048 05 ws-fld4 pic x. 000049 05 Filler pic x. 000050 05 ws-first pic x(15). 000051 05 Filler pic x. 000052 GnuCOBOL 2.2.0 cob02.cob Sat Mar 30 09:52:56 2019 Page 0002 LINE PG/LN A...B............................................................ 000053 PROCEDURE DIVISION. 000054 DISPLAY "Program Start!" 000055 Perform Init 000056 Perform Until EOF 000057 Read InFile 000058 At End 000059 Set EOF to True 000060 Not At End 000061 UNSTRING InRec DELIMITED BY "|" 000062 INTO ws-acct, ws-fld2, ws-fld3, ws-fld4, ws-first 000063 END-UNSTRING 000064 * Move InRec to OutRec 000065 Move WS-Rec to OutRec 000066 Write OutRec 000067 End-Read 000068 End-Perform 000069 Close InFile, OutFile. 000070 STOP RUN. 000071 Init. 000072 Open Input InFile. 000073 Open Output OutFile. GnuCOBOL 2.2.0 cob02.cob Sat Mar 30 09:52:56 2019 Page 0003 NAME DEFINED REFERENCES InFile 17 25 57 69 72 InRec 28 61 infile-data 29 referenced by parent OutFile 20 32 *66 69 *73 OutRec 33 *65 66 out-data 34 referenced by parent WS-section 37 referenced by child infile-record-length 38 27 30 FILLER 39 *59 EOF 40 56 59 WS-Rec 41 65 ws-acct 42 62 ws-fld2 44 62 ws-fld3 46 62 ws-fld4 48 62 ws-first 50 62 GnuCOBOL 2.2.0 cob02.cob Sat Mar 30 09:52:56 2019 Page 0004 LABEL DEFINED REFERENCES E cob02 54 P Init 71 55 0 warnings in compilation group 0 errors in compilation group