Filed Under: Easytrieve
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

There's 0 entry So Far
Leave your Feedback / Question here. Thanks!