File size: 1,860 Bytes
94c017d
 
 
5866e22
 
 
9248d35
5866e22
 
 
94c017d
 
5866e22
 
9248d35
94c017d
5866e22
 
9248d35
 
 
5866e22
9248d35
 
 
 
 
94c017d
9248d35
 
 
 
 
 
 
5866e22
9248d35
 
94c017d
 
 
 
9248d35
94c017d
 
9248d35
5866e22
9248d35
 
 
94c017d
9248d35
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
       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)