tinycobol/test.code/t31/test31.cob

81 lines
2.1 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. TEST31.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT PHONE-FILE
ASSIGN TO "phone.dat"
ORGANIZATION IS SEQUENTIAL
FILE STATUS IS W01-STATUS.
DATA DIVISION.
FILE SECTION.
FD PHONE-FILE
LABEL RECORDS ARE STANDARD
RECORD IS VARYING IN SIZE FROM 10 TO 60 CHARACTERS
DEPENDING ON RECORD-LENGTH.
01 PHONE-RECORD PIC X(60).
01 PHONE-RECORD-10 PIC X(10).
01 PHONE-RECORD-20 PIC X(20).
WORKING-STORAGE SECTION.
01 RECORD-LENGTH PIC 999.
01 W01-STATUS PIC XX.
01 W01-CNT PIC 999.
PROCEDURE DIVISION.
MAIN-LOGIC SECTION.
PROGRAM-BEGIN.
OPEN OUTPUT PHONE-FILE.
PERFORM CREATE-FILE
VARYING W01-CNT FROM 1 BY 1
UNTIL W01-CNT > 25.
CLOSE PHONE-FILE.
MOVE ZEROES TO W01-STATUS.
OPEN INPUT PHONE-FILE.
IF W01-STATUS NOT = "00"
DISPLAY "ERROR IN OPENING FILE"
STOP RUN.
LOOP.
MOVE SPACES TO PHONE-RECORD
PHONE-RECORD-10
PHONE-RECORD-20.
READ PHONE-FILE.
IF W01-STATUS NOT = "00"
DISPLAY "ERROR IN READING RECORD W01-STATUS=" W01-STATUS
STOP RUN.
* DISPLAY PHONE-RECORD.
* DISPLAY RECORD-LENGTH.
IF RECORD-LENGTH < 11
THEN
DISPLAY "PHONE-RECORD-10=" PHONE-RECORD-10 ": RECORD-LENGTH=" RECORD-LENGTH
ELSE
IF RECORD-LENGTH < 21
THEN
DISPLAY "PHONE-RECORD-20=" PHONE-RECORD-20 ": RECORD-LENGTH=" RECORD-LENGTH
ELSE
DISPLAY "PHONE-RECORD =" PHONE-RECORD ": RECORD-LENGTH=" RECORD-LENGTH
END-IF
END-IF.
GO TO LOOP.
CLOSE PHONE-FILE.
STOP RUN.
CREATE-FILE SECTION.
AA.
* MOVE W01-CNT TO RECORD-LENGTH.
MOVE 60 TO RECORD-LENGTH.
MOVE ALL "A" TO PHONE-RECORD.
WRITE PHONE-RECORD.
MOVE 10 TO RECORD-LENGTH.
MOVE ALL "B" TO PHONE-RECORD-10.
WRITE PHONE-RECORD-10.
MOVE 20 TO RECORD-LENGTH.
MOVE ALL "C" TO PHONE-RECORD-20.
WRITE PHONE-RECORD-20.
EXIT.