Easytrieve – File Handling

File declaration examples

 FILE FILE1

Fixed block files

 FILE FILE1 FB(80 200)
* 80 is LRECL and 200 is blocksize

Variable block Files

 FILE FILE1 VB(80 200)

VSAM files

 FILE FILE1 VS

File record definition

 FILE FILE1 FB(80 200)
   IN-REC 1 80 A
   IN-FIELD1 IN-REC 40 A
   IN-FIELD2 IN-REC +40 20 A
   IN-FIELD3 IN-REC +60 20 A

(OR)

 FILE FILE1 FB(80 200)
   IN-REC 1 80 A
   IN-FIELD1 1 40 A
   IN-FIELD2 41 20 A
   IN-FIELD3 61 20 A

If field1 and Field2 are not used, then just Field3 can be defined

 FILE FILE1 FB(80 200)
   IN-REC 1 80 A
   IN-FIELD3 61 20 A

Reading File record by record and copy it to another file


EOF <FILE DD NAME> checks the End of File, and returns true when there are no more records to fetch.
GET <FILE DD NAME> statement is used to read one record from the file
PUT <FILE DD NAME> statement is used to write one record to the file

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 LIST ON
 FILE INFILE
 FILE OUTFILE
 JOB INPUT NULL
 GET INFILE
 DO WHILE NOT EOF INFILE
   PUT OUTFILE FROM INFILE
   GET INFILE
 END-DO
 STOP

(Or)

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 LIST ON
 FILE INFILE FB(80 200)
   IN-REC 1 80 A
 FILE OUTFILE FB(80 200)
   OUT-REC 1 80 A
*
 WS-COUNT W 4 N VALUE 0
*
 JOB INPUT NULL
 GET INFILE
 DO WHILE NOT EOF INFILE
   MOVE IN-REC TO OUT-REC
   PUT OUTFILE
   WS-COUNT = WS-COUNT + 1
   GET INFILE
 END-DO
 DISPLAY WS-COUNT ' RECORDS WRITTEN'
 STOP 

Writing to Variable block files

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 LIST ON
 FILE INFILE VB(80 200)
   IN-REC 1 80 A
 FILE OUTFILE VB(80 200)
   OUT-REC 1 80 A
 JOB INPUT NULL
 GET INFILE
 DO WHILE NOT EOF INFILE
   MOVE IN-REC TO OUT-REC
   OUTFILE : RECORD-LENGTH = INFILE : RECORD-LENGTH
   PUT OUTFILE
   GET INFILE
 END-DO
 STOP

Reading VSAM file by Key

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 LIST ON
 FILE FILE1 FB(80 200)
   IN-REC 1 80 A
   IN-KEY 1 8 A
 FILE FILE2 VS
   F2-REC 1 80 A
   F2-KEY 1 8 A
   F2-VALUE 15 30 A
 FILE OUTFILE FB(80 200)
   OUT-REC 1 80 A
   OUT-KEY 1 8 A
   OUT-VALUE 10 30 A
 JOB INPUT NULL
 GET FILE1
 DO WHILE NOT EOF INFILE
   READ FILE2 KEY IN-KEY STATUS
   IF FILE2 : STATUS EQ 0
      MOVE IN-KEY TO OUT-KEY
      MOVE F2-VALUE TO OUT-VALUE
      PUT OUTFILE
   ELSE
      DISPLAY IN-KEY ' NOT PRESENT IN VSAM FILE'
   END-IF
   GET INFILE
 END-DO
 STOP

Related Posts

There's 0 entry So Far

Leave your Feedback / Question here. Thanks!