COBOL Manual for TNS/E Programs (H06.08+, J06.03+)
Example 124 PERFORM VARYING Statement Used to Display a List
WORKING-STORAGE SECTION.
01 COMMAND-DATA.
05 FILLER PIC X(36)
VALUE "ADD - ADD A NEW RECORD".
05 FILLER PIC X(36)
VALUE "DELETE - DELETE A RECORD".
...
01 COMMAND-TABLE REDEFINES COMMAND-DATA.
05 COMMAND-ENTRY PIC X(36) OCCURS 10 TIMES.
01 COMMAND-NUMBERS.
05 NO-OF-COMMANDS PIC 99 VALUE 9.
05 COMMAND-SUB PIC 99 COMP VALUE 1.
PROCEDURE DIVISION.
...
PERFORM LIST-COMMANDS
VARYING COMMAND-SUB FROM 1 BY 1
UNTIL COMMAND-SUB GREATER THAN NO-OF-COMMANDS
...
LIST-COMMANDS.
DISPLAY COMMAND-ENTRY(COMMAND-SUB)
...
In Example 125, each of the two paragraphs builds a table of numbers (rows) raised to powers
(columns). Each paragraph fills the 5 columns of row 1, then of row 2, and so on.
Example 125 PERFORM VARYING Statement Used to Build a Table
WORKING-STORAGE SECTION.
01 TWO-D-TABLE.
03 OCCURS 10 TIMES.
05 PWR PICTURE 9(6) OCCURS 5 TIMES.
PROCEDURE DIVISION.
TWO-NESTED-PERFORMS.
PERFORM VARYING R FROM 1 BY 1 UNTIL R > 10
PERFORM VARYING C FROM 1 BY 1 UNTIL C > 5
COMPUTE PWR (R, C) = R ** C
END-PERFORM
END-PERFORM.
SINGLE-PERFORM-WITH-AFTER.
PERFORM VARYING R FROM 1 BY 1 UNTIL R > 10
AFTER C FROM 1 BY 1 UNTIL C > 5
COMPUTE PWR (R, C) = R ** C
END-PERFORM.
READ
READ copies one logical record from a file and stores it in a record area defined by your program.
READ for Sequential or Dynamic Access
READ for sequential or dynamic access reads the next record in the file. (For sequential access of
line sequential files, see READ for Line Sequential Files (page 417).)
READ 405










