|
I stand corrected, if you change the %eof to %found. Boy, these BIF's are wonderful, aren't they.
John Brandt
-----Original Message----- From: M. Lazarus [mailto:mlazarus@xxxxxxxx] Sent: Friday, March 26, 2004 11:55 AM To: RPG programming on the AS400 / iSeries Subject: RE: Loop code
John,
At 3/26/04 12:12 PM, you wrote: >I don't see anywhere that there are any holes in my code. > >Are you implying that the line >C myklist chain myfile >is "if I feel like it, and I haven't chained before, chain. Otherwise, just >skip this one?" >The Chain will set the %eof condition when it is executed.
No it won't - CHAIN sets the %Found indicator, while READx sets the %EOF (and %Equal) indicator.
>If the chain fails, the DOW(hile) will not execute, as it shouldn't.
That could be coincidence / luck - if there was a prior READx that set the %EOF() indicator.
>It works very well on my system and the systems of thousands of my clients.
Then your systems have a compiler bug! :)
-mark
>-----Original Message----- >From: M. Lazarus [mailto:mlazarus@xxxxxxxx] >Sent: Friday, March 26, 2004 10:31 AM >To: RPG programming on the AS400 / iSeries >Subject: Loop code > > >John, > > There are 2 holes in your code: > >1) If the CHAIN fails the loop will still execute, probably displaying >incorrect data. CHAIN sets the %Found() flag. > >2) If you will be executing this code more than once within the program >the loop will probably NOT execute. This is because the %EOF() condition >will likely have already been set by the previous execution of this loop. > > Changing the CHAIN to a SETLL/READE combo should fix the problem. > > -mark > >At 3/26/04 11:12 AM, you wrote: > >While his code would write a duplicate record at the bottom of the subfile, > >and your code may be efficient, my suggestion would be: > > > >C myklist chain myfile > >C dow NOT %eof(myfile) > >C eval rrn = rrn + 1 > >C write mysubfile > >C myklist reade myfile > >C enddo > > > >JMHO > >John Brandt > >iStudio400.com > > > >-----Original Message----- > >From: Marvin Radding [mailto:MRadding@xxxxxxxxxxxx] > >Sent: Friday, March 26, 2004 9:58 AM > >To: rpg400-l@xxxxxxxxxxxx > >Subject: RE: RPG400-L Digest, Vol 3, Issue 231 > > > > > > > >While there is nothing wrong with your code, I think this way is more > >effiecient. > > > >C myklist setll myfile > >C > >C dou %eof(myfile) > >C > >C myklist reade myfile > >C if %eof(myfile) > >C iter > >C endif > >C > >C eval rrn = rrn + 1 > >C write mysubfile > >C > >C enddo > > > >Marvin Radding > > > > > >message: 1 > >date: Thu, 25 Mar 2004 14:32:35 -0800 (PST) > >from: simafrog <SimaFrog@xxxxxxxxxx> > >subject: SETLL ONE SLIGHT PROBLEM > > > >Actually I don't think I can do this here anyway. One problem remaining > >is that the reade of the Detail file is causing one extra record to be > >added to the work file, the last one of the batch is duplicated. Here is > >the code: > > C BLD BEGSR > > C* > > C OHKEY SETLLORDHEDR 40 > > C* > > C *IN40 DOWEQ*OFF > > C* > > > > C OHKEY READEORDHEDR 40 > > C *IN40 IFEQ '0' > > C* > > C C* > > C ODKEY SETLLORDDTL 50 > > C *IN50 DOUEQ*ON > > C ODKEY READEORDDTL 50 > > C WRITEORDSWRKF > > C END > > C END > > C END > > C* > > C ENDSR > > > > > > > > > > > > > >_______________________________________________ > >This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list > >To post a message email: RPG400-L@xxxxxxxxxxxx > >To subscribe, unsubscribe, or change list options, > >visit: http://lists.midrange.com/mailman/listinfo/rpg400-l > >or email: RPG400-L-request@xxxxxxxxxxxx > >Before posting, please take a moment to review the archives > >at http://archive.midrange.com/rpg400-l. > > > >--- > >Incoming mail is certified Virus Free. > >Checked by AVG anti-virus system (http://www.grisoft.com). > >Version: 6.0.642 / Virus Database: 410 - Release Date: 3/24/04 > > > > > >--- > >Outgoing mail is certified Virus Free. > >Checked by AVG anti-virus system (http://www.grisoft.com). > >Version: 6.0.639 / Virus Database: 408 - Release Date: 3/22/04 > > > >_______________________________________________ > >This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list > >To post a message email: RPG400-L@xxxxxxxxxxxx > >To subscribe, unsubscribe, or change list options, > >visit: http://lists.midrange.com/mailman/listinfo/rpg400-l > >or email: RPG400-L-request@xxxxxxxxxxxx > >Before posting, please take a moment to review the archives > >at http://archive.midrange.com/rpg400-l. > >_______________________________________________ >This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list >To post a message email: RPG400-L@xxxxxxxxxxxx >To subscribe, unsubscribe, or change list options, >visit: http://lists.midrange.com/mailman/listinfo/rpg400-l >or email: RPG400-L-request@xxxxxxxxxxxx >Before posting, please take a moment to review the archives >at http://archive.midrange.com/rpg400-l. > >--- >Incoming mail is certified Virus Free. >Checked by AVG anti-virus system (http://www.grisoft.com). >Version: 6.0.642 / Virus Database: 410 - Release Date: 3/24/04 > > >--- >Outgoing mail is certified Virus Free. >Checked by AVG anti-virus system (http://www.grisoft.com). >Version: 6.0.639 / Virus Database: 408 - Release Date: 3/22/04 > >_______________________________________________ >This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list >To post a message email: RPG400-L@xxxxxxxxxxxx >To subscribe, unsubscribe, or change list options, >visit: http://lists.midrange.com/mailman/listinfo/rpg400-l >or email: RPG400-L-request@xxxxxxxxxxxx >Before posting, please take a moment to review the archives >at http://archive.midrange.com/rpg400-l.
_______________________________________________ This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.
--- Incoming mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.642 / Virus Database: 410 - Release Date: 3/24/04
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.639 / Virus Database: 408 - Release Date: 3/22/04
_______________________________________________ This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/rpg400-l or email: RPG400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/rpg400-l.
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.