UD supports LOOP WHILE READNEXT ID DO D3 Supports LOOP READNEXT ID ELSE EXIT UNTIL 0 DO
I don't recall what UV supports but it does have a streamlined version without needing the tired EOF=0 or DONE=0 scenarios. My 1 cent. ----- Original Message ----- From: "Dave Schexnayder" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, December 13, 2004 11:52 AM Subject: RE: [U2] LOOP or GOTO on READNEXT > Karl, > > You probably already know this, but the second example will never terminate. > I believe you intended to include a > > LOOP WHILE DONE = 0 DO > > or > > LOOP UNTIL DONE DO > > but the code does not include that necessary piece. As to actual code > produced, I do not know. However, I would recommend the following: > > LOOP > READNEXT K ELSE EXIT > READ REC FROM CF, K THEN > NK = FMT(K, "R%6") > WRITE REC ON CF, NK > DELETE CF, K > END > REPEAT > > This code is functionally the same as the piece with the GOTO, but without > the GOTO. It has clear entry and exit, is tabbed for easy understanding, > and does not require an exit variable such as DONE. I believe this will > translate to code virtually identical to the GOTO code and should operate at > the same speed. The second piece of code you submitted, with the WHILE or > UNTIL added, has the additional burden of an IF (think WHILE or UNTIL) for > each iteration. > > I hope that helps. > > Thanks, > > > Dave Schexnayder. :-) > Cheetah Advanced Technologies, Inc. > > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of > [EMAIL PROTECTED] > Sent: Monday, December 13, 2004 9:33 AM > To: [EMAIL PROTECTED] > Subject: [U2] LOOP or GOTO on READNEXT > > > I've seen 2 ways to read a client key, change the length to 6 digits, then > write it back out, delete the old one and move on: > > EXAMPLE 1 of 2: > !(FIXEMPNO) - Fix the employee number length > open '','CUSTEMP' to CF else stopm 'Not' > select CF > 10: readnext K else stop > read REC from CF,K then > NK = fmt(K,"R%6") > write REC on CF,NK > delete CF,K > end > go 10 > end > > EXAMPLE 2 of 2: > !(FIXEMPNO) - Fix the employee number length > DONE = 0 > open '','CUSTEMP' to CF else stopm 'Not' > select CF > loop > readnext K else DONE = 1 > read REC from CF,K then > NK = fmt(K,"R%6") > write REC on CF,NK > delete CF,K > end > repeat > end > > My intent is not to start a religious discussion about GO or GOTOs because > I see that method all over the place and regardless of why, who or > whatever, my question is, which is faster. (I prefer using loop..repeat > syntax, FWIW). > > -- > Karl L. Pearson > Director of IT, > ATS Industrial Supply > Direct: 801-978-4429 > Toll-free: 800-789-9300 1,29 > Fax: 801-972-3888 > http://www.atsindustrial.com > [EMAIL PROTECTED] > ------- > u2-users mailing list > [EMAIL PROTECTED] > To unsubscribe please visit http://listserver.u2ug.org/ > ------- > u2-users mailing list > [EMAIL PROTECTED] > To unsubscribe please visit http://listserver.u2ug.org/ ------- u2-users mailing list [EMAIL PROTECTED] To unsubscribe please visit http://listserver.u2ug.org/
