home *** CD-ROM | disk | FTP | other *** search
- // TBWhSkip.prg
- //
- // TBWhSkip() - skipBlock function implementing general purpose
- // while condition
-
- // Handles empty databases and no records matching condition
-
- FUNCTION TBWhSkip(nToSkip, bWhile)
-
- LOCAL nSkipped := 0
-
- IF nToSkip = 0
- SKIP 0
- RETURN 0
- ENDIF
-
- IF nToSkip > 0
- DO WHILE eval(bWhile) .AND. !eof() .AND. nSkipped < nToSkip
- SKIP
- IF eval(bWhile) .AND. !eof()
- nSkipped++
- ENDIF
- ENDDO
- IF !eval(bWhile) .OR. eof()
- SKIP -1
- ENDIF
- ELSE
- DO WHILE eval(bWhile) .AND. !bof() .AND. nSkipped > nToSkip
- SKIP -1
- IF eval(bWhile) .AND. !bof()
- nSkipped--
- ENDIF
- ENDDO
- IF !eval(bWhile)
- SKIP
- ENDIF
- ENDIF
-
- RETURN nSkipped