Length of each record in Variable file

4 posts / 0 new
Last post
Anonymous
Length of each record in Variable file

 

 

 

 

 

I have a requirement where I have to read a variable file and based on the different length of records in the file I have to do different processing.
 
Say my input file has records with length 10, 20 , 30 and 40
 
In my cobol program if the record is of length 10 then I would deal it with other processing then the record with length 20.
 
Any help would be appreciated.
 
Thanks!!
Karthik
"; ; ; ;
Offline
Joined: 07/07/2011 - 19:59
Variable record size

Haven't tried this myself so not sure if it will work!

FILE SECTION.

FD REPORT-FILE
RECORD IS VARYING IN SIZE FROM 1 TO 10000
DEPENDING ON REPORT-SIZE.

01 REPORT-RECORD PIC X(10000).

WORKING-STORAGE SECTION.

77 REPORT-SIZE PIC 9(4) COMP-5.

After reading the record you could examine the contents of the field in working storage called REPORT-SIZE and it will hopefully contain the record length!

Offline
Joined: 07/07/2011 - 19:59
Variable record size
It would e nice to know if this actually worked!
Anonymous
Thank you so much

 

Alan, 
 
Many Many Thanks!!
 
It worked as expected. Here are my test results.
 
Cobol program that I used.
--------------------------
 
 
IDENTIFICATION DIVISION.                                         
PROGRAM-ID. TEST1.                                               
ENVIRONMENT DIVISION.                                            
INPUT-OUTPUT SECTION.                                            
FILE-CONTROL.                                                    
                                                                 
    SELECT INPUTFL ASSIGN        TO UT-S-INPUTFL.                
                                                                 
DATA DIVISION.                                                   
                                                                 
FILE SECTION.                                                    
                                                                 
FD  INPUTFL                                                      
    BLOCK CONTAINS 0 RECORDS                                     
    RECORDING MODE IS V                                          
    RECORD IS VARYING IN SIZE FROM 1 TO 80 CHARACTERS            
    DEPENDING ON FILE-SIZE.                                      
01  INPUTFL-REC                            PIC X(80).            
                                                                 
WORKING-STORAGE SECTION.                                         
                                                                 
01 FILE-SIZE PIC 9(4) COMP-5.                                    
01  SWITCHES.                                                    
    05  EOF-INPUT-FILE           PIC X      VALUE 'N'.           
        88 EOF-INPUT                        VALUE 'Y'.           
                                                                 
PROCEDURE DIVISION.                                              
                                                                 
    OPEN INPUT INPUTFL.                                          
                                                                 
    MOVE 'N' TO  EOF-INPUT-FILE.                                 
    PERFORM UNTIL EOF-INPUT                                      
      READ INPUTFL AT END                                        
         SET EOF-INPUT TO TRUE                                   
      END-READ                                                   
      IF NOT EOF-INPUT                                           
         DISPLAY FILE-SIZE                                       
      END-IF                                                     
    END-PERFORM                                                  
                                                                 
    STOP RUN.                                                    
 
 
 
Contents of Input file INPUTFL
------------------------------
 
THE QUICK BROWN
FOX JUMPS
OVER THE LAZY
DOG
 
 
Contents of sysout display
--------------------------
 
00015                                                                                                                    
00009                                                                                                                    
00013                                                                                                                    
00003                                                                                                                    
 
Log in or register to post comments
Sponsored Listing