81 lines
2.1 KiB
COBOL
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.
|