| 
 | 
Rob,
No wonder you don't like priming reads if you do it like this :-) You use 
three %eofs where one should suffice and you don't process the first 
record.
This should be enough:
*inlr=*on;
read myfile;
Dow not %eof(myFile);
  // your processing here;
  read myFile;
EndDo;
If you want to handle errors, it should be something like this (depends on 
how you want to handle errors):
*inlr=*on;
read(e) myfile;
Dow not %error and not %eof(myFile);
  // your processing here;
  read(e) myFile;
EndDo;
Joep Beckeringh
rob@xxxxxxxxx
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
15-03-2007 18:29
Please respond to RPG programming on the AS400 / iSeries
 
        To:     RPG programming on the AS400 / iSeries 
<rpg400-l@xxxxxxxxxxxx>
        cc: 
        Fax to: 
        Subject:        RE: LR not turning *ON??
to the one poster:
It's a read loop - not a primary file.  A read loop will not set on lr.
To the OP:
Why not use this as another reason to scrap indicators and do something 
like
*inlr=*on;
read(e) myfile;
if not %eof(myFile);
  Dow not %eof(myFile);
    read(e) myFile;
    if not %eof(myfile);
      // your processing here;
    endIf;
  EndDo;
EndIf;
but I hate priming reads so I might even do
*inlr=*on;
dow ReadFile(Myfile);
  // your processing here;
EndDo;
and the read would be in the subprocedure ReadFile.  And if part of "// 
your processing" includes an iter you will not have an infinite loop.
Rob Berendt
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.