tinycobol/test.code/t19/test19.cob

138 lines
2.5 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. TEST19.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT TEST-FILE-OUT ASSIGN TO WS-FILENAME-OUT
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
SELECT TEST-FILE-IN ASSIGN TO WS-FILENAME-IN
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD TEST-FILE-OUT
LABEL RECORDS ARE STANDARD.
01 TEST-RECORD-OUT.
05 FILLER PIC X(48).
FD TEST-FILE-IN
LABEL RECORDS ARE STANDARD.
01 TEST-RECORD-IN.
05 FILLER PIC X(31).
WORKING-STORAGE SECTION.
01 WS-FILENAME-OUT PIC X(35) VALUE "test.out.txt".
01 WS-FILENAME-IN PIC X(35) VALUE "test.in.txt".
01 TEST-RECORD-OUT-WS.
05 WS-NUMBER-OUT PIC 9(5) VALUE 1.
05 WS-DATA-OUT PIC X(43) VALUE SPACES.
01 TEST-RECORD-IN-WS.
05 WS-DATA-IN PIC X(31).
01 WS-RCODE PIC Z(4)9 VALUE ZERO.
01 EOF-SW PIC X(1) VALUE 'N'.
01 ERROR-SW PIC X(1) VALUE 'F'.
01 WS-REC-COUNTER-IN PIC 9(5) VALUE 0.
01 CMDLINE-PARMS PIC X(50).
01 CMDLINE-ARGVS.
05 CMDLINE-ARGV OCCURS 2 TIMES PIC X(35).
PROCEDURE DIVISION.
A-000.
PERFORM A-025.
IF ERROR-SW EQUAL 'F'
THEN
PERFORM A-075
END-IF.
DISPLAY "WS-RCODE=" WS-RCODE.
STOP RUN.
A-025.
ACCEPT CMDLINE-PARMS FROM COMMAND-LINE.
* DISPLAY "CMDLINE-PARMS =" CMDLINE-PARMS ";".
IF RETURN-CODE NOT EQUAL 0
THEN
DISPLAY "COMMAND LINE truncation ERROR has occured "
MOVE RETURN-CODE TO WS-RCODE
MOVE 'T' TO ERROR-SW
ELSE
PERFORM A-050
END-IF.
A-050.
MOVE SPACES TO CMDLINE-ARGVS.
UNSTRING CMDLINE-PARMS DELIMITED BY ' ' INTO
CMDLINE-ARGV (1)
CMDLINE-ARGV (2).
IF CMDLINE-ARGV (2) NOT EQUAL SPACES
THEN
MOVE CMDLINE-ARGV (2) TO WS-FILENAME-OUT
END-IF.
A-075.
OPEN OUTPUT TEST-FILE-OUT.
OPEN INPUT TEST-FILE-IN.
PERFORM A-200.
PERFORM A-100 UNTIL EOF-SW = 'Y'.
CLOSE TEST-FILE-OUT.
CLOSE TEST-FILE-IN.
MOVE WS-REC-COUNTER-IN TO WS-RCODE.
DISPLAY "WS-REC-COUNTER-IN=" WS-RCODE.
MOVE RETURN-CODE TO WS-RCODE.
A-100.
DISPLAY "ENTER A-100".
MOVE WS-DATA-IN TO WS-DATA-OUT.
WRITE TEST-RECORD-OUT FROM TEST-RECORD-OUT-WS.
ADD 1 TO WS-NUMBER-OUT.
* READ TEST-FILE-IN INTO WS-DATA-IN
* AT END MOVE 'Y' TO EOF-SW.
PERFORM A-200.
DISPLAY "EXIT A-100".
A-200.
DISPLAY "ENTER A-200".
READ TEST-FILE-IN INTO WS-DATA-IN
AT END MOVE 'Y' TO EOF-SW.
IF EOF-SW = 'N'
ADD 1 TO WS-REC-COUNTER-IN.
DISPLAY "EXIT A-200".