There are those occasions when file conversions may be necessary. When that time comes simply use a COBOL program to solve the problem.
By placing the programs in the load library makes them available to any required programming situation, The main program simply issues the call and the linkage editor resolves all external references. This approach is what I like to call quick and dirty.
[codesyntax lang=”cobol”]
000100 IDENTIFICATION DIVISION. 00010000
000200 PROGRAM-ID. ABM00002. 00020004
000300 AUTHOR. ARCH BROOKS. 00030000
000400 INSTALLATION BROOKS COMPUTING SYSTEMS, LLC. 00040000
000500 DATE-WRITTEN. 09/15/2014. 00050000
000600 DATE-COMPILED. 09/15/2014. 00060000
000700 ENVIRONMENT DIVISION. 00070000
000800 CONFIGURATION SECTION. 00080000
000900 SOURCE-COMPUTER. IBM-Z-OS. 00090000
001000 OBJECT-COMPUTER. IBM-Z-OS. 00100000
001100 DATA DIVISION. 00110000
001200 WORKING-STORAGE SECTION. 00120000
001201 01 EOF-SW PIC X. 00120100
001210 01 CMDBUF PIC X(80). 00121000
001220 PROCEDURE DIVISION. 00122000
001230 MOVE ‘ ‘ TO EOF-SW. 00123002
001231 CALL ‘ABS00002’. 00123101
001232 CALL ‘ABS00003’. 00123203
001233 PERFORM 0010-DO-IO UNTIL EOF-SW NOT EQUAL SPACES. 00123303
001234 CALL ‘ABS0002B’. 00123405
001235 CALL ‘ABS0003B’. 00123505
001236 GOBACK. 00123603
001237 0010-DO-IO. 00123703
001238 CALL ‘ABS0002A’ USING CMDBUF EOF-SW. 00123803
001239 IF EOF-SW = SPACES THEN 00123906
001240 CALL ‘ABS0003A’ USING CMDBUF. 00124006
[/codesyntax]
The input sub program is listed below.
[codesyntax lang=”cobol”]
000100 IDENTIFICATION DIVISION. 00010000 000200 PROGRAM-ID. ABS00002. 00020000 000300 AUTHOR. ARCH BROOKS. 00030000 000400 INSTALLATION BROOKS COMPUTING SYSTEMS, LLC. 00040000 000500 DATE-WRITTEN. 09/15/2014. 00050000 000600 DATE-COMPILED. 09/15/2014. 00060000 000700 ENVIRONMENT DIVISION. 00070000 000710 INPUT-OUTPUT SECTION. 00071000 000720 FILE-CONTROL. 00072000 000730 SELECT V-FILE ASSIGN TO UT-S-VSINP 00073021 000740 ORGANIZATION IS SEQUENTIAL. 00074002 001100 DATA DIVISION. 00110000 001110 FILE SECTION. 00111000 001120 FD V-FILE 00112005 001121 DATA RECORD IS V-RECORD 00112116 001122 RECORDING MODE IS V 00112210 001123 RECORD IS VARYING IN SIZE FROM 1 TO 80 CHARACTERS. 00112319 001130 01 V-RECORD PIC X(80). 00113015 001200 WORKING-STORAGE SECTION. 00120000 001210 LINKAGE SECTION. 00121000 001211 01 EOF-SW PIC X. 00121120 001220 01 LSBUF PIC X(80). 00122000 001300 PROCEDURE DIVISION. 00130020 001310 OPEN INPUT V-FILE. 00131006 001400 GOBACK. 00140000 001500 ENTRY 'ABS0002A' USING LSBUF, EOF-SW. 00150020 001600 READ V-FILE INTO LSBUF 00160000 001700 AT END MOVE 'X' TO EOF-SW. 00170000 001800 GOBACK. 00180000 001900 ENTRY 'ABS0002B'. 00190007 002000 CLOSE V-FILE. 00200000 002100 GOBACK. 00210000
[/codesyntax]
The output sub program is listed here.
[codesyntax lang=”cobol”]
000100 IDENTIFICATION DIVISION. 00010000 000200 PROGRAM-ID. ABS00003. 00020000 000300 AUTHOR. ARCH BROOKS. 00030000 000400 INSTALLATION BROOKS COMPUTING SYSTEMS, LLC. 00040000 000500 DATE-WRITTEN. 09/15/2014. 00050000 000600 DATE-COMPILED. 09/15/2014. 00060000 000700 ENVIRONMENT DIVISION. 00070000 000710 INPUT-OUTPUT SECTION. 00071000 000720 FILE-CONTROL. 00072000 000730 SELECT F-FILE ASSIGN TO UT-S-FSOUT 00073000 000740 ORGANIZATION IS SEQUENTIAL. 00074000 000750 DATA DIVISION. 00075000 000760 FILE SECTION. 00076000 000770 FD F-FILE 00077000 000780 DATA RECORD IS F-RECORD 00078000 000790 RECORDING MODE IS F. 00079000 000900 01 F-RECORD PIC X(80). 00090000 001000 WORKING-STORAGE SECTION. 00100000 001100 LINKAGE SECTION. 00110000 001200 01 EOF-SW PIC X. 00120000 001210 01 LSBUF PIC X(80). 00121000 001220 PROCEDURE DIVISION. 00122000 001230 OPEN OUTPUT F-FILE. 00123000 001240 GOBACK. 00124000 001250 ENTRY 'ABS0003A' USING LSBUF, EOF-SW. 00125000 001251 WRITE F-RECORD FROM LSBUF. 00125100 001280 GOBACK. 00128000 001290 ENTRY 'ABS0003B'. 00129000 001300 CLOSE F-FILE. 00130000 001400 GOBACK. 00140000
[/codesyntax]
These programs may be easily copied and modified which will make them usable for many input output usages. They have been tested and work flawlessly without much forethought.
Mr. Arch Brooks, Software Engineer, Brooks Computing Systems, LLC authored this article.