WOPO/WOPO-CNF.COB

82 lines
2.4 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. "WOPO-CNF".
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CONFIG
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS CONFIG-KEY.
SELECT USERS
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS USER-NAME.
SELECT CHANNELS
ORGANIZATION IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD CONFIG.
01 CONFIG-RECORD.
03 CONFIG-KEY PIC X(16).
03 CONFIG-VALUE PIC X(64).
FD USERS.
01 USER-RECORD.
03 USER-NAME PIC X(16).
03 USER-LEVEL PIC 9(2).
FD CHANNELS.
01 CHANNEL-RECORD.
03 CHANNEL-NAME PIC X(50).
WORKING-STORAGE SECTION.
01 STATE PIC 9(2) VALUE 0.
88 DONE VALUE 10.
PROCEDURE DIVISION.
DISPLAY "WOPO CONFIGURATION PROGRAM".
DISPLAY "BLANK ENTRY TO EXIT SECTION".
DISPLAY "WRITING CONFIGURATION ENTRIES:".
OPEN OUTPUT CONFIG.
PERFORM WRITE-CONFIG-ENTRY UNTIL DONE.
MOVE 0 TO STATE.
CLOSE CONFIG.
DISPLAY "WRITING USER ENTRIES:"
OPEN OUTPUT USERS.
PERFORM WRITE-USER-ENTRY UNTIL DONE.
MOVE 0 TO STATE.
CLOSE USERS.
OPEN OUTPUT CHANNELS.
DISPLAY "WRITING CHANNEL AUTOJOINS:"
PERFORM WRITE-CHANNEL-ENTRY UNTIL DONE.
MOVE 0 TO STATE.
CLOSE CHANNELS.
CALL "PRINT-CONFIG".
STOP RUN.
WRITE-CONFIG-ENTRY.
DISPLAY "KEY?"
ACCEPT CONFIG-KEY.
DISPLAY "VALUE?"
ACCEPT CONFIG-VALUE.
IF CONFIG-KEY EQUALS SPACES OR CONFIG-VALUE EQUALS SPACES
THEN MOVE 10 TO STATE
ELSE WRITE CONFIG-RECORD.
WRITE-USER-ENTRY.
DISPLAY "USER?"
ACCEPT USER-NAME.
DISPLAY "LEVEL?"
ACCEPT USER-LEVEL.
IF USER-NAME EQUALS SPACES OR USER-LEVEL EQUALS 0
THEN MOVE 10 TO STATE
ELSE WRITE USER-RECORD.
WRITE-CHANNEL-ENTRY.
DISPLAY "CHANNEL?"
ACCEPT CHANNEL-NAME.
IF CHANNEL-NAME EQUALS SPACES
THEN MOVE 10 TO STATE
ELSE WRITE CHANNEL-RECORD.