|
That code will exit the loop when either file reaches end of file because of the OREQ. > -----Original Message----- > From: hrishikesh kotwal [mailto:hdkotwal@hotmail.com] > Sent: Wednesday, November 14, 2001 7:18 AM > To: rpg400-l@midrange.com > Subject: RE: DOUEQ - Loop (RPG III) > > > [ Converted text/html to text/plain ] > > Thanks all. > > My requirement was to read both files till both reach their > EOF. The 2 files > may differ in the no. of records. Therefore I have succeeded in using > > *IN97 DOWEQ *OFF > > *IN96 OREQ *OFF > > | > > | > > ENDDO > > The results are as expected. > Regards, > > Hrishikesh Kotwal > > >From: "Bob Cozzi \(RPGIV\)" > >Reply-To: rpg400-l@midrange.com > >To: > >Subject: RE: DOUEQ - Loop (RPG III) > >Date: Wed, 14 Nov 2001 07:07:08 -0600 > > > >Sorry to say this, but the coding techniques needs a lot of > >reconsideration. I would have the think for a long time to > make the loop > >any more complex when it doesn't have to be. > > > >This looks like a traditional "position the file and enter a loop, > >process the rest of the file" routine. All those other IFEQ > in that loop > >are out of place. > > > >Basically, in this kind of routine you do this: > > > > Position the file (your CHAIN operations > > Enter the DOxx loop. Usually on a Record Found condition, > so something > >like: > > *IN96 DOWEQ *OFF > > *IN97 ANDEQ *OFF > > > >But that depends on whether you want the routine to end when EITHER > >files hits the end-of-equal-key (EOF) condition. > > > >The next thing is usually to put your processing (code) in > the start/top > >of the DOxx loop. Then at the bottom, do your READE > operations with the > >96 & 97 indicators. No more testing is needed because the DOWEQ > >condition test the status once each iteration. The only > really logical > >difference between a DOWxx and a DOUxx is that the > conditional test for > >DOWxx is performed at the top of the loop, and DOUxx is > performed at the > >logical bottom of the loop. Hence DOUxx loops are _always_ > run at least > >one time. > > > > > >Bob Cozzi > >cozzi@rpgiv.com > >Visit the new on-line iSeries Forums at: http://www.rpgiv.com/forum > > > > > -----Original Message----- > > > From: rpg400-l-admin@midrange.com > [mailto:rpg400-l-admin@midrange.com] > >On > > > Behalf Of darren@dekko.com > > > Sent: Tuesday, November 13, 2001 12:59 PM > > > To: rpg400-l@midrange.com > > > Subject: RE: DOUEQ - Loop (RPG III) > > > > > > > > > hrishikesh, > > > > > > Jim L. is correct. Either change the test to *ON or use > DOWEQ. There > >are > > > some other logic errors in this program. Here's a hint, make sure > >*IN97 is > > > set everywhere it should be, and is Overflow going to > work the way its > > > intended? > > > > > > > > > > > > > > > > > > rpg400-l-request@mi > > > drange.com To: > >rpg400-l@midrange.com > > > Sent by: cc: > > > rpg400-l-admin@midr Fax to: > > > ange.com Subject: RPG400-L > >digest, > > > Vol 1 #199 - 3 msgs > > > > > > > > > 11/13/2001 01:01 PM > > > Please respond to > > > rpg400-l > > > > > > > > > > > > > > > > > > > > > > > > > > > From: Jim Langston > > > To: "'rpg400-l@midrange.com'" > > > Subject: RE: DOUEQ - Loop (RPG III) > > > Date: Tue, 13 Nov 2001 09:43:34 -0800 > > > Reply-To: rpg400-l@midrange.com > > > > > > > > > "I checked this in Debug and found that even if > > > *IN97 & *IN96 are *OFF the loop ends?!!!" > > > > > > > > > Umm.. that's what you're telling it to do. > > > > > > 30600 C *IN97 DOUEQ*OFF > > > 30700 C *IN96 ANDEQ*OFF > > > > > > Do until both *IN97 and *IN96 are off. > > > > > > -----Original Message----- > > > From: hrishikesh kotwal [mailto:hdkotwal@hotmail.com] > > > Sent: Tuesday, November 13, 2001 9:34 AM > > > To: rpg400-l@midrange.com > > > Subject: DOUEQ - Loop (RPG III) > > > > > > > > > [ Converted text/html to text/plain ] > > > > > > Dear all, > > > > > > > > > > > > With reference to one of my earlier mails regarding Line > Count, I had > > > received > > > a solution to match records and print them. In that solution DOUEQ > >loop was > > > used. I have used this in my program and it has > successfully printed > >most > > > of > > > the records. But today I noticed a bug in my loop. > Following is the > >loop: > > > > > > 21800 > **------------------------------------------------------------ > > > > > > 28600 C DTL020 BEGSR > > > > > > 29300 C SETOF 97 > > > > > > 29400 C DDCINB CHAINCMBF4CL1 97 > > > > > > 29500 C SETOF 96 > > > > > > 29600 C DDCINB CHAINCMBF4D 96 > > > > > > 30600 C *IN97 DOUEQ*OFF > > > > > > 30700 C *IN96 ANDEQ*OFF > > > > > > 30900 C *IN97 IFEQ *ON > > > > > > 31000 C *IN96 ANDEQ*ON > > > > > > 31100 C LEAVE > > > > > > 31200 C ENDIF > > > > > > 36800 C EXCPTPRTDT4 > > > > > > 37000 C OA EXCPTPRTHDG > > > > > > 37200 C OA SETON OA > > > > > > 37800 C *IN97 IFEQ *OFF > > > > > > 37900 C DDCINB READECMBF4CL1 > > > > > > 38000 C ENDIF > > > > > > 38200 C *IN96 IFEQ *OFF > > > > > > 38300 C DDCINB READECMBF4D 96 > > > > > > 38800 C ENDIF > > > > > > 39000 C *IN97 IFEQ *ON > > > > > > 39100 C *IN96 ANDEQ*ON > > > > > > 39300 C EXCPTPRTDT5 > > > > > > 39500 C ENDIF > > > > > > 39700 C ENDDO > > > > > > 39800 C* > > > > > > 39900 C ENDSR > > > > > > ------------------------------------------------------------------ > > > > > > I read files CMBF2CL1 & CMBF2D together for a common DDCINB (Item > >Number). > > > Both files may have none or multiple records for DDCINB. I want to > >print > > > whatever records exist in both files for DDCINB. > Therefore I am trying > >to > > > use > > > the Match Record Processing logic BUT My problem is that > when CMBF2CL1 > >& > > > CMBF2D have more than one record for the same DDCINB the > loop fails. I > > > checked > > > this in Debug and found that even if *IN97 & *IN96 are > *OFF the loop > > > ends?!!! > > > How is this possible? Is there something wrong in this loop. > > > > > > > > > > > > Please help. > > > > > > > > > > > > Regards, > > > > > > Hrishikesh Kotwal > > > > > > > > > > > > > > > _______________________________________________ > > > This is the RPG programming on the AS400 / iSeries > (RPG400-L) mailing > >list > > > To post a message email: RPG400-L@midrange.com > > > To subscribe, unsubscribe, or change list options, > > > visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l > > > or email: RPG400-L-request@midrange.com > > > 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@midrange.com > >To subscribe, unsubscribe, or change list options, > >visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l > >or email: RPG400-L-request@midrange.com > >Before posting, please take a moment to review the archives > >at http://archive.midrange.com/rpg400-l. > > > > -------------------------------------------------------------- > ---------------- > Get your FREE download of MSN Explorer at http://explorer.msn.com[1] > > ===References:=== > 1. http://go.msn.com/bql/hmtag_itl_EN.asp > > _______________________________________________ > This is the RPG programming on the AS400 / iSeries (RPG400-L) > mailing list > To post a message email: RPG400-L@midrange.com > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l > or email: RPG400-L-request@midrange.com > 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.