Spaces:
Sleeping
Sleeping
IDENTIFICATION DIVISION. | |
PROGRAM-ID. ACCOUNT-MGMT. | |
ENVIRONMENT DIVISION. | |
INPUT-OUTPUT SECTION. | |
FILE-CONTROL. | |
SELECT ACCOUNT-FILE ASSIGN TO "data/accounts.csv" | |
ORGANIZATION IS LINE SEQUENTIAL. | |
DATA DIVISION. | |
FILE SECTION. | |
FD ACCOUNT-FILE | |
RECORDING MODE F | |
LABEL RECORDS ARE STANDARD. | |
01 ACCOUNT-RECORD PIC X(1024). | |
WORKING-STORAGE SECTION. | |
01 EOF PIC X VALUE 'N'. | |
01 WS-ACCOUNT-NUMBER PIC 9(4). | |
01 WS-NAME PIC X(30). | |
01 WS-BALANCE PIC 9(6)V99. | |
LINKAGE SECTION. | |
01 LS-ACTION PIC X(10). | |
01 LS-DATA PIC X(1024). | |
PROCEDURE DIVISION USING LS-ACTION LS-DATA. | |
MAIN-LOGIC. | |
EVALUATE LS-ACTION | |
WHEN "READ" | |
PERFORM READ-ACCOUNT | |
WHEN "CREATE" | |
PERFORM CREATE-ACCOUNT | |
END-EVALUATE | |
GOBACK. | |
READ-ACCOUNT. | |
OPEN INPUT ACCOUNT-FILE | |
PERFORM UNTIL EOF = 'Y' | |
READ ACCOUNT-FILE INTO ACCOUNT-RECORD | |
AT END MOVE 'Y' TO EOF | |
NOT AT END | |
DISPLAY ACCOUNT-RECORD | |
END-READ | |
END-PERFORM | |
CLOSE ACCOUNT-FILE. | |
CREATE-ACCOUNT. | |
OPEN EXTEND ACCOUNT-FILE | |
WRITE ACCOUNT-RECORD FROM LS-DATA | |
CLOSE ACCOUNT-FILE | |
UNSTRING LS-DATA DELIMITED BY "," INTO | |
WS-ACCOUNT-NUMBER, | |
WS-NAME, | |
WS-BALANCE | |
END-UNSTRING | |
CALL "LOG-TRANSACTION" USING | |
FUNCTION TRIM("Account created: " & | |
WS-ACCOUNT-NUMBER & | |
" - " & WS-NAME) |