|
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-2024 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.