% &MODE = 'TRAILING'                                      201.
 % &REC-LEN =121                                           202.
 % &TEST-CHR = 'SPACE'                                     203.
 % &REPLACE-CHR = 'ZERO'                                   204.
 IDENTIFICATION DIVISION.                                  205.
 PROGRAM-ID.                     EXAMPLE2.                 206.
*SPECIAL CONSIDERATIONS.                                   207.
* SAMPLE PROGRAM TO READ RECS WHOSE LENGTH IS DETERMINED   208.
* AT COMPILE-TIME & REPLACE SOME OCCURRENCES OF TEST-CHR   209.
* BY THE REPLACE-CHR (BOTH TO BE SET AT COMPILE-TIME).     210.
* REPLACEMENT MODE USED (LEADING, TRAILING, OR ALL)        211.
* IS SET AT COMPILE-TIME.                                  212.
                                                           213.
 ENVIRONMENT DIVISION.                                     214.
 INPUT-OUTPUT SECTION.                                     215.
 FILE-CONTROL.                                             216.
 SELECT INPUT-FILE           ASSIGN "INPUT".               217.
 SELECT OUTPUT-FILE          ASSIGN "OUTPUT".              218.
                                                           219.
 DATA DIVISION.                                            220.
 FILE SECTION.                                             221.
                                                           222.
 FD  INPUT-FILE                                            223.
     BLOCK CONTAINS 0 RECORDS                              224.
     LABEL RECORDS ARE STANDARD.                           225.
 01  INPUT-RECORD                PIC X(&REC-LEN).          226.
                                                           227.
 FD  OUTPUT-FILE                                           228.
     BLOCK CONTAINS 0 RECORDS                              229.
     LABEL RECORDS ARE STANDARD.                           230.
 01  OUTPUT-RECORD               PIC X(&REC-LEN).          231.
                                                           232.
 WORKING-STORAGE SECTION.                                  233.
                                                           234.
 01  WS-RECORD.                                            235.
   02  WS-CHR                   PIC X OCCURS &REC-LEN.     236.
                                                           237.
 01  II                          PIC S9(4) COMP-5.         238.    
                                                           239.
 PROCEDURE DIVISION.                                       240.
                                                           241.
 OPEN INPUT INPUT-FILE                                     242.
 OPEN OUTPUT OUTPUT-FILE                                   243.
                                                           244.
 REPEAT                                                    245.
     READ INPUT-FILE INTO WS-RECORD                        246.
 UNTIL AT END ON INPUT-FILE                                247.
     % IF &MODE = 'LEADING'                                248.
         REPEAT VARYING II FROM 1 BY 1                     249.
         UNTIL II > &REC-LEN                               250.
         ... OR WS-CHR (II) NOT = &TEST-CHR                251.
             WS-CHR (II) = &REPLACE-CHAR                   252.
     % ELSE-IF &MODE = 'TRAILING'                          253.
         REPEAT VARYING II FROM &REC-LEN BY -1             254.
         UNTIL II < 1                                      255.
         ... OR WS-CHR (II) NOT = &TEST-CHR                256.
             WS-CHR (II) = &REPLACE-CHAR                   257.
     % ELSE-IF &MODE = 'ALL'                               258.
         REPEAT VARYING II FROM 1 BY 1                     259.
         UNTIL II > &REC-LEN                               260.
             IF WS-CHR (II) = &TEST-CHR                    261.
                 WS-CHR (II) = &REPLACE-CHAR               262.
     % ELSE                                                263.
         DISPLAY "PARAMETER ERROR IMPROPER MODE:" &MODE    264.
                                                           265.
     WRITE OUTPUT-RECORD FROM WS-RECORD                    266.
                                                           267.
 CLOSE INPUT-FILE OUTPUT-FILE                              268.
 
               	 020500 IDENTIFICATION DIVISION. 205. 020600 PROGRAM-ID. EXAMPLE2. 206. 020700*SPECIAL CONSIDERATIONS. 207. 020800* PROGRAM TO READ RECS WHOSE LENGTH IS DETERMINED AT 208. 020900* COMPILE-TIME & REPLACE SOME OCCURRENCES OF TEST-CHR209. 021000* BY REPLACE-CHR (BOTH TO BE SET AT COMPILE-TIME). 210. 021100* REPLACEMENT MODE USED (LEADING, TRAILING OR ALL) 211. 021200* IS SET AT COMPILE-TIME. 212. 021300 213. 021400 ENVIRONMENT DIVISION. 214. 021500 INPUT-OUTPUT SECTION. 215. 021600 FILE-CONTROL. 216. 021700 SELECT INPUT-FILE ASSIGN "INPUT". 217. 021800 SELECT OUTPUT-FILE ASSIGN "OUTPUT". 218. 021900 219. 022000 DATA DIVISION. 220. 022100 FILE SECTION. 221. 022200 222. 022300 FD INPUT-FILE 223. 022400 BLOCK CONTAINS 0 RECORDS 224. 022500 LABEL RECORDS ARE STANDARD. 225. 022600 01 INPUT-RECORD PIC X(121). 226. 022700 227. 022800 FD OUTPUT-FILE 228. 022900 BLOCK CONTAINS 0 RECORDS 229. 023000 LABEL RECORDS ARE STANDARD. 230. 023100 01 OUTPUT-RECORD PIC X(121). 231. 023200 232. 023300 WORKING-STORAGE SECTION. 233. 023400 234. 023500 01 WS-RECORD. 235. 023600 02 WS-CHR PIC X OCCURS 121. 236. 023700 237. 023800 01 II PIC S9(4) COMP-5. 238. 023900 239. 024000 PROCEDURE DIVISION. 240. 024100 241. 024200 OPEN INPUT INPUT-FILE 242. 024300 OPEN OUTPUT OUTPUT-FILE 243. 024400 244. 024500 REPEAT 245. 024600 READ INPUT-FILE INTO WS-RECORD 246. 024700 UNTIL AT END ON INPUT-FILE 247. 025400 REPEAT VARYING II FROM 121 BY -1 254. 025500 UNTIL II < 1 255. 025600 ... OR WS-CHR (II) NOT = SPACE 256. 025700 WS-CHR (II) = ZERO 257. 026600 WRITE OUTPUT-RECORD FROM WS-RECORD 266. 026700 267. 026800 CLOSE INPUT-FILE OUTPUT-FILE 268.
Lines 201 - 204:
Lines 245-247 and 266-268:
Lines 253-257:
Lines 263-265: