Companion programs to list and load data for STOCK
The following programs build on the CIS COBOL examples STOCK1 and STOCK2 programs.
List feedstock file
The FEEDSTCK.TXT file is a line sequential
file containing numbers for early Intel products.
The program is an example of how to read a file sequentially and display each record on the screen.
IDENTIFICATION DIVISION. PROGRAM-ID. LIST-FEED. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STOCK-FILE ASSIGN "FEEDSTCK.TXT" ORGANIZATION LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD STOCK-FILE; RECORD CONTAINS 32 CHARACTERS. 01 STOCK-ITEM. 02 STOCK-CODE PIC X(4). 02 PRODUCT-DESC PIC X(24). 02 UNIT-SIZE PIC 9(4). WORKING-STORAGE SECTION. 01 DISP-ITEM. 02 DI-CODE PIC X(4). 02 FILLER PIC X VALUE " ". 02 DI-DESC PIC X(24). 02 FILLER PIC X VALUE " ". 02 DI-SIZE PIC 9(4). 77 END-OF-FILE PIC 9. PROCEDURE DIVISION. OPEN INPUT STOCK-FILE. DISPLAY "CODE DESCRIPTION SIZE". DISPLAY "---- ------------------------ ----". MOVE ZERO TO END-OF-FILE. PERFORM READ-LINE THRU READ-LINE-EXIT UNTIL END-OF-FILE = 1. CLOSE STOCK-FILE. DISPLAY "---- ------------------------ ----". STOP RUN. READ-LINE. READ STOCK-FILE AT END MOVE 1 TO END-OF-FILE GO TO READ-LINE-EXIT. MOVE STOCK-CODE TO DI-CODE. MOVE PRODUCT-DESC TO DI-DESC. MOVE UNIT-SIZE TO DI-SIZE. DISPLAY DISP-ITEM. READ-LINE-EXIT. EXIT.
FEEDSTCK.TXT
40044-bit Microprocessor 0001 40404-bit Microprocessor 0001 80088-bit Microprocessor 0001 80808-bit Microprocessor 0010 80858-bit Microprocessor 5V 0010 4001256-byte ROM 0012 400240-byte RAM 0001 400310-bit Shift register 0020 40088-bit address latch 0010 4009I/O access converter 0010 4101256 x 4-bit Static RAM 0010 4201Clock Generator 0010 8224Clock generator 0010 4207G/P 8-bit Output port 0010 4209G/P 8-bit Input port 0010 4211G/P 8-bit I/O port 0010 4269Pgmable keyboard/display0010 4289Memory interface 0010 4289Std Memory Interface 0010 43081K x 8-bit ROM + I/O 0010 32164-bit parallel bus drivr0010 43162K x 8-bit ROM 0010 4702256 x 8-bit EPROM 0010 8228System controller 0010 8238System controller 0010 8251Communication controller0010 8253Interval timer 0020 8255Peripheral interface 0010 8257DMA controller 0080 4265General-purpose I/O 0010
Load feedstock file into STOCK.IT
The following program reads the FEEDSTCK.TXT file and writes each record into the STOCK.IT indexed file. There is a duplicate code in the feed stock, which will cause a load error for the second record.
IDENTIFICATION DIVISION. PROGRAM-ID. LOAD-FEED. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FEED-FILE ASSIGN "FEEDSTCK.TXT" ORGANIZATION LINE SEQUENTIAL. SELECT STOCK-FILE ASSIGN "STOCK.IT" ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY STOCK-CODE. DATA DIVISION. FILE SECTION. FD FEED-FILE. 01 FEED-ITEM. 02 FEED-CODE PIC X(4). 02 FEED-DESC PIC X(24). 02 FEED-SIZE PIC 9(4). FD STOCK-FILE. 01 STOCK-ITEM. 02 STOCK-CODE PIC X(4). 02 PRODUCT-DESC PIC X(24). 02 UNIT-SIZE PIC 9(4). WORKING-STORAGE SECTION. 77 END-OF-FILE PIC 9. PROCEDURE DIVISION. OPEN INPUT FEED-FILE. OPEN OUTPUT STOCK-FILE. MOVE ZERO TO END-OF-FILE. PERFORM READ-LINE THRU READ-LINE-EXIT UNTIL END-OF-FILE = 1. CLOSE FEED-FILE, STOCK-FILE. STOP RUN. READ-LINE. READ FEED-FILE AT END MOVE 1 TO END-OF-FILE GO TO READ-LINE-EXIT. MOVE FEED-ITEM TO STOCK-ITEM. DISPLAY "LOADING: " STOCK-CODE. WRITE STOCK-ITEM INVALID KEY DISPLAY " -- FAILED". READ-LINE-EXIT. EXIT.
List stock indexed file
The following program lists the content of STOCK.IT sequentially. Note that the records are now sorted on stock code.
IDENTIFICATION DIVISION. PROGRAM-ID. LIST-STOCK. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STOCK-FILE ASSIGN "STOCK.IT" ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY STOCK-CODE. DATA DIVISION. FILE SECTION. FD STOCK-FILE. 01 STOCK-ITEM. 02 STOCK-CODE PIC X(4). 02 PRODUCT-DESC PIC X(24). 02 UNIT-SIZE PIC 9(4). WORKING-STORAGE SECTION. 01 DISP-ITEM. 02 DI-CODE PIC X(4). 02 FILLER PIC X VALUE " ". 02 DI-DESC PIC X(24). 02 FILLER PIC X VALUE " ". 02 DI-SIZE PIC 9(4). 77 END-OF-FILE PIC 9. PROCEDURE DIVISION. OPEN INPUT STOCK-FILE. DISPLAY "CODE DESCRIPTION SIZE". DISPLAY "---- ------------------------ ----". MOVE ZERO TO END-OF-FILE. PERFORM READ-RECORD THRU READ-RECORD-EXIT UNTIL END-OF-FILE = 1. CLOSE STOCK-FILE. DISPLAY "---- ------------------------ ----". STOP RUN. READ-RECORD. READ STOCK-FILE NEXT RECORD AT END MOVE 1 TO END-OF-FILE GO TO READ-RECORD-EXIT. MOVE STOCK-CODE TO DI-CODE. MOVE PRODUCT-DESC TO DI-DESC. MOVE UNIT-SIZE TO DI-SIZE. DISPLAY DISP-ITEM. READ-RECORD-EXIT. EXIT.
You can now use the STOCK2 program to create a transaction file.