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)