Page 1 of 1

Suggest me better version of the below pasted code

PostPosted: Mon Jul 28, 2008 9:28 pm
by ranga_subham
Hi,

Would you experts please suggest me better version of the below pasted code :!: :?:

       IDENTIFICATION DIVISION.                                                 
       PROGRAM-ID. EXTRAC02.                                                   
                                                                               
       ENVIRONMENT DIVISION.                                                   
       INPUT-OUTPUT SECTION.                                                   
       FILE-CONTROL.                                                           
           SELECT I1-FILE ASSIGN TO I1FILE.                                     
           SELECT O1-FILE ASSIGN TO O1FILE.                                     
                                                                               
       DATA DIVISION.                                                           
       FILE SECTION.                                                           
       FD  I1-FILE                                                             
           LABEL RECORDS ARE STANDARD                                           
           RECORDING MODE IS F.                                                 
       01  I1-FILE-REC  PIC  X(1048).                                           
                                                                               
       FD  O1-FILE                                                             
           LABEL RECORDS ARE STANDARD                                           
           RECORDING MODE IS F.                                                 
       01  O1-FILE-REC  PIC  X(1048).                                           
                                                                               
       WORKING-STORAGE SECTION.                                                 
       01  WS-EOF               PIC  X(01) VALUE SPACE.                         
                                                                               
       01  WS-01-HOLD-REC.                                                     
           05  WS-01-HOLD-REC-TYPE  PIC X(02)   VALUE SPACE.                   
           05  FILLER               PIC X(03)   VALUE SPACE.                   
           05  WS-01-HOLD-XNQ-NBR   PIC X(07)   VALUE SPACE.                   
           05  FILLER               PIC X(1036) VALUE SPACE.                   
                                                                               
       01  WS-02-HOLD-REC.                                                     
           05  WS-02-HOLD-REC-TYPE  PIC X(02)   VALUE SPACE.                   
           05  FILLER               PIC X(03)   VALUE SPACE.                   
           05  WS-02-HOLD-XNQ-NBR   PIC X(07)   VALUE SPACE.                   
           05  FILLER               PIC X(1036) VALUE SPACE.                   
                                                                               
       01  WS-IN-REC.                                                           
           05  WS-IN-REC-TYPE       PIC X(02)  VALUE SPACE.                     
           05  FILLER               PIC X(03)  VALUE SPACE.                     
           05  WS-IN-XNQ-NBR        PIC X(07)  VALUE SPACE.                     
           05  FILLER               PIC X(42)  VALUE SPACE.                     
           05  WS-IN-BAG            PIC X(06)  VALUE SPACE.                     
           05  FILLER               PIC X(988) VALUE SPACE.                     
                                                                               
       PROCEDURE DIVISION.                                                     
       01-MAIN-PARA.                                                           
           DISPLAY '01-MAIN-PARA'.                                             
           PERFORM 02-OPEN-PARA.                                               
           PERFORM 03-READ-PARA.                                               
           PERFORM 04-PERF-PARA  UNTIL WS-EOF = 'Y'.                           
           PERFORM 05-CLOS-PARA.                                               
           STOP RUN.                                                           
                                                                               
       02-OPEN-PARA.                                                           
           DISPLAY '02-OPEN-PARA'.                                             
           OPEN INPUT  I1-FILE                                                 
                OUTPUT O1-FILE.                                                 
                                                                               
       03-READ-PARA.                                                           
           DISPLAY '03-READ-PARA'.                                             
           READ I1-FILE INTO WS-IN-REC                                         
             AT END MOVE 'Y' TO WS-EOF                                         
           END-READ.                                                           
                                                                               
       04-PERF-PARA.                                                           
           DISPLAY '04-PERF-PARA'.                                             
           IF  WS-IN-REC-TYPE = '01'                                           
               MOVE WS-IN-REC TO WS-01-HOLD-REC                                 
           ELSE                                                                 
               IF   WS-IN-REC-TYPE = '02'                                       
                AND WS-IN-BAG = '111111'                                       
                    MOVE WS-IN-REC TO WS-02-HOLD-REC                           
                    IF  WS-01-HOLD-XNQ-NBR = WS-02-HOLD-XNQ-NBR                 
                        MOVE SPACE       TO O1-FILE-REC                         
                        MOVE WS-01-HOLD-REC TO O1-FILE-REC                     
                        WRITE O1-FILE-REC                                       
                        MOVE SPACE       TO O1-FILE-REC                         
                        MOVE WS-02-HOLD-REC TO O1-FILE-REC                     
                        WRITE O1-FILE-REC                                       
                    END-IF                                                     
               END-IF                                                           
               IF   WS-IN-XNQ-NBR = WS-02-HOLD-XNQ-NBR                         
                AND WS-IN-REC-TYPE NOT = '02'                                   
                    MOVE SPACE       TO O1-FILE-REC                             
                    MOVE I1-FILE-REC TO O1-FILE-REC                             
                    WRITE O1-FILE-REC                                           
               END-IF                                                           
           END-IF                                                               
           PERFORM 03-READ-PARA.                                               
                                                                               
       05-CLOS-PARA.                                                           
           DISPLAY '06-CLOS-PARA'.                                             
           CLOSE I1-FILE                                                       
                 O1-FILE.                                                   


I wrote this code in a hurry but not able to fine tune it. :?

Please help. :oops:

Thanks.

Re: better version.

PostPosted: Mon Jul 28, 2008 9:50 pm
by dick scherrer
Hello,

How would you want to tune this?

It appears to read a record and write some output - not much opportunity for tuning. . . :?

Re: better version.

PostPosted: Mon Jul 28, 2008 10:01 pm
by ranga_subham
Hi,

I understand that there is not much scope. But, I thought how one would modify it to have Evaluates and other stuff. Also, the below condition bothers me........means, is a better way to put it?

Whatever you could modify to slim it or look better would help me.

IF   WS-IN-XNQ-NBR = WS-02-HOLD-XNQ-NBR                         
                AND WS-IN-REC-TYPE NOT = '02'                                   
                    MOVE SPACE       TO O1-FILE-REC                             
                    MOVE I1-FILE-REC TO O1-FILE-REC                             
                    WRITE O1-FILE-REC                                           
               END-IF                     


Thanks.