Spaces:
Sleeping
Sleeping
Update cobol/account.cbl
Browse files- cobol/account.cbl +35 -21
cobol/account.cbl
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
ENVIRONMENT DIVISION.
|
5 |
INPUT-OUTPUT SECTION.
|
6 |
FILE-CONTROL.
|
7 |
-
SELECT ACCOUNT-FILE ASSIGN TO "data/accounts.
|
8 |
ORGANIZATION IS LINE SEQUENTIAL.
|
9 |
|
10 |
DATA DIVISION.
|
@@ -12,37 +12,51 @@
|
|
12 |
FD ACCOUNT-FILE
|
13 |
RECORDING MODE F
|
14 |
LABEL RECORDS ARE STANDARD.
|
15 |
-
01 ACCOUNT-RECORD.
|
16 |
-
02 ACCT-NUM PIC 9(4).
|
17 |
-
02 FILLER PIC X(4).
|
18 |
-
02 NAME PIC X(20).
|
19 |
-
02 FILLER PIC X(6).
|
20 |
-
02 AMOUNT PIC 9(6)V99.
|
21 |
|
22 |
WORKING-STORAGE SECTION.
|
23 |
01 EOF PIC X VALUE 'N'.
|
24 |
-
01 ACCOUNT-NUMBER
|
25 |
-
01
|
26 |
-
01 BALANCE
|
27 |
|
28 |
-
|
|
|
|
|
|
|
|
|
29 |
MAIN-LOGIC.
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
33 |
|
|
|
|
|
34 |
PERFORM UNTIL EOF = 'Y'
|
35 |
READ ACCOUNT-FILE INTO ACCOUNT-RECORD
|
36 |
AT END MOVE 'Y' TO EOF
|
37 |
NOT AT END
|
38 |
-
|
39 |
-
MOVE NAME TO CUSTOMER-NAME
|
40 |
-
MOVE AMOUNT TO BALANCE
|
41 |
-
DISPLAY "Customer: ", CUSTOMER-NAME
|
42 |
-
DISPLAY "Balance: $", BALANCE
|
43 |
-
END-IF
|
44 |
END-READ
|
45 |
END-PERFORM
|
|
|
46 |
|
|
|
|
|
|
|
47 |
CLOSE ACCOUNT-FILE
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
ENVIRONMENT DIVISION.
|
5 |
INPUT-OUTPUT SECTION.
|
6 |
FILE-CONTROL.
|
7 |
+
SELECT ACCOUNT-FILE ASSIGN TO "data/accounts.csv"
|
8 |
ORGANIZATION IS LINE SEQUENTIAL.
|
9 |
|
10 |
DATA DIVISION.
|
|
|
12 |
FD ACCOUNT-FILE
|
13 |
RECORDING MODE F
|
14 |
LABEL RECORDS ARE STANDARD.
|
15 |
+
01 ACCOUNT-RECORD PIC X(1024).
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
WORKING-STORAGE SECTION.
|
18 |
01 EOF PIC X VALUE 'N'.
|
19 |
+
01 WS-ACCOUNT-NUMBER PIC 9(4).
|
20 |
+
01 WS-NAME PIC X(30).
|
21 |
+
01 WS-BALANCE PIC 9(6)V99.
|
22 |
|
23 |
+
LINKAGE SECTION.
|
24 |
+
01 LS-ACTION PIC X(10).
|
25 |
+
01 LS-DATA PIC X(1024).
|
26 |
+
|
27 |
+
PROCEDURE DIVISION USING LS-ACTION LS-DATA.
|
28 |
MAIN-LOGIC.
|
29 |
+
EVALUATE LS-ACTION
|
30 |
+
WHEN "READ"
|
31 |
+
PERFORM READ-ACCOUNT
|
32 |
+
WHEN "CREATE"
|
33 |
+
PERFORM CREATE-ACCOUNT
|
34 |
+
END-EVALUATE
|
35 |
+
GOBACK.
|
36 |
|
37 |
+
READ-ACCOUNT.
|
38 |
+
OPEN INPUT ACCOUNT-FILE
|
39 |
PERFORM UNTIL EOF = 'Y'
|
40 |
READ ACCOUNT-FILE INTO ACCOUNT-RECORD
|
41 |
AT END MOVE 'Y' TO EOF
|
42 |
NOT AT END
|
43 |
+
DISPLAY ACCOUNT-RECORD
|
|
|
|
|
|
|
|
|
|
|
44 |
END-READ
|
45 |
END-PERFORM
|
46 |
+
CLOSE ACCOUNT-FILE.
|
47 |
|
48 |
+
CREATE-ACCOUNT.
|
49 |
+
OPEN EXTEND ACCOUNT-FILE
|
50 |
+
WRITE ACCOUNT-RECORD FROM LS-DATA
|
51 |
CLOSE ACCOUNT-FILE
|
52 |
+
|
53 |
+
UNSTRING LS-DATA DELIMITED BY "," INTO
|
54 |
+
WS-ACCOUNT-NUMBER,
|
55 |
+
WS-NAME,
|
56 |
+
WS-BALANCE
|
57 |
+
END-UNSTRING
|
58 |
+
|
59 |
+
CALL "LOG-TRANSACTION" USING
|
60 |
+
FUNCTION TRIM("Account created: " &
|
61 |
+
WS-ACCOUNT-NUMBER &
|
62 |
+
" - " & WS-NAME)
|