Writing Data With COBOL

My experience learning COBOL. In this tutorial, I’ll show you how to add indexed information to a file.


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


Print Share Comment Cite Upload Translate Updates
APA

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/

MLA
" » Writing Data With COBOL." Delmi Pitta | Sciencx - Friday November 8, 2024, https://www.scien.cx/2024/11/08/writing-data-with-cobol/
HARVARD
Delmi Pitta | Sciencx Friday November 8, 2024 » Writing Data With COBOL., viewed ,<https://www.scien.cx/2024/11/08/writing-data-with-cobol/>
VANCOUVER
Delmi Pitta | Sciencx - » Writing Data With COBOL. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/11/08/writing-data-with-cobol/
CHICAGO
" » Writing Data With COBOL." Delmi Pitta | Sciencx - Accessed . https://www.scien.cx/2024/11/08/writing-data-with-cobol/
IEEE
" » Writing Data With COBOL." Delmi Pitta | Sciencx [Online]. Available: https://www.scien.cx/2024/11/08/writing-data-with-cobol/. [Accessed: ]
rf:citation
» Writing Data With COBOL | Delmi Pitta | Sciencx | 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.

You must be logged in to translate posts. Please log in or register.