This content originally appeared on HackerNoon and was authored by Delmi Pitta
\ Hey devs! I am Delmi Pitta from Dominican Republic and I am trying to learn about COBOL and I have to say that this has been a beautiful journey. COBOL is easy to learn, maybe if you have information about better process than this please let me know.
\ This program shows how we can add indexed information to a file, ‘data.dat’. This is the file type I have used on this COBOL program and this was written on opeCobolIDE from gnuCobol.
\
IDENTIFICATION DIVISION.
PROGRAM-ID. Filing.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
*> THIS PART CONNECT US WITH FILES 'DATA.DAT'
SELECT EMPLOYEES ASSIGN TO 'DATA.DAT'
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS FS-ID.
DATA DIVISION.
FILE SECTION.
*> THIS PART MODIFY THE 'DATA.DAT' ABOVE
FD EMPLOYEES.
01 EMPLOYEES-RECORD.
05 FS-ID PIC 9(11).
05 FS-NAME PIC X(10).
05 FS-LAST-NAME PIC X(10).
05 FS-PHONE-NUM PIC 9(11).
05 FS-SALARY PIC 9(4).
05 FS-SOCIAL-NUMBER PIC 9(11).
05 FS-OCCUPATION PIC X(30).
05 FS-SCHEDULE PIC X(30).
05 FS-EMAIL PIC X(30).
WORKING-STORAGE SECTION.
01 WS-IF-PROCEDURE PIC X(1).
01 WS-PERFORM-PROCEDURE PIC X(1).
01 WS-ERROR-PROCEDURE PIC X(50).
01 FILE-STATUS PIC XX.
PROCEDURE DIVISION.
BEGIN.
DISPLAY 'PLEASE CHOOSE AN OPTION BELOW: WRITE(W) READ(R)'.
DISPLAY 'WHAT DO YOU WANT TO DO? DELETE(D) MODIFY(M)'.
ACCEPT WS-IF-PROCEDURE.
IF WS-IF-PROCEDURE = 'W' OR WS-IF-PROCEDURE = 'w' THEN
PERFORM UNTIL WS-PERFORM-PROCEDURE = 'N'
OPEN I-O EMPLOYEES
DISPLAY 'WHAT IS THE EMPLOYEE ID NUMBER?'
ACCEPT FS-ID
*> VerifY IF THE ID ALREADY EXIST OPENING A READ TAG
READ EMPLOYEES
INVALID KEY
*> Prompt user for additional information if ID is available
DISPLAY 'WHAT IS THE EMPLOYEE NAME?'
ACCEPT FS-NAME
DISPLAY 'WHAT IS THE EMPLOYEE LAST NAME?'
ACCEPT FS-LAST-NAME
DISPLAY 'WHAT IS THE EMPLOYEE PHONE NUMBER?'
ACCEPT FS-PHONE-NUM
DISPLAY 'WHAT IS THE EMPLOYEE EMAIL ADDRESS?'
ACCEPT FS-EMAIL
DISPLAY 'WHAT IS THE EMPLOYEE SALARY?'
ACCEPT FS-SALARY
DISPLAY 'WHAT IS THE EMPLOYEE SOCIAL NUMBER?'
ACCEPT FS-SOCIAL-NUMBER
DISPLAY 'WHAT IS THE EMPLOYEE OCCUPATION?'
ACCEPT FS-OCCUPATION
DISPLAY 'WHAT IS THE EMPLOYEE SCHEDULE?'
ACCEPT FS-SCHEDULE
*> Write the new record to the file
WRITE EMPLOYEES-RECORD
*> PROTECT THE CURRENT INFORMATION FRON NEWEST
INVALID KEY
MOVE 'ERROR: RECORD COULD NOT BE WRITTEN' TO WS-ERROR-PROCEDURE
DISPLAY WS-ERROR-PROCEDURE
NOT INVALID KEY
DISPLAY 'Record successfully added!'
NOT INVALID KEY
*> IF THE ID ALREADY EXIST WILL SHOW THIS
MOVE 'ERROR: EMPLOYEE ID ALREADY EXISTS' TO WS-ERROR-PROCEDURE
DISPLAY WS-ERROR-PROCEDURE
*> CLOSE THE READ PROCESS
END-READ
*> TO REPEAT THE BUCLE
DISPLAY 'WOULD YOU LIKE TO ADD ANOTHER RECORD? (Y/N)'
ACCEPT WS-PERFORM-PROCEDURE
*> IT IS MANDATORY TO CLOSE THE FILE TO CONTINUE WITH PROGRAM
CLOSE EMPLOYEES
END-PERFORM
END-IF.
STOP RUN.
END PROGRAM Filing.
\ If you execute this program on windows it will show you different question about employees you will be able to fill and save.
\ In the next program I will show you how to read that saved information on your console.
\
Remember this program works on the console or terminal.
\
READ THE COMMENT ARE WITH ‘*>’.
\
PLEASE FOLLOW ME, RESPOND AND SHARE THIS.
\
This content originally appeared on HackerNoon and was authored by Delmi Pitta
Delmi Pitta | Sciencx (2024-11-08T07:44:30+00:00) Writing Data With COBOL. Retrieved from https://www.scien.cx/2024/11/08/writing-data-with-cobol/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.