LOCATE
 Faz uma busca sequencial por um registro que atenda uma condiçao
------------------------------------------------------------------------------

 Sintaxe

     LOCATE [<abrangência>] FOR <lCondiçao> [WHILE <lCondiçao>]

 Argumentos

     <abrangência> é a parte do arquivo de dados corrente no qual o
     comando LOCATE atuará.  O padrao é todos (ALL) os registros.

     FOR <lCondiçao> especifica o próximo registro a ser localizado
     dentro da abrangência.

     WHILE <lCondiçao> especifica o conjunto de registros que atendem a
     condiçao do registro corrente até que a condiçao seja falsa.

 Descriçao

     O comando LOCATE procura o primeiro registro na área de trabalho
     corrente que atenda as condiçoes e a abrangência.  Quando você executa
     um comando LOCATE pela primeira vez, ele procura o primeiro registro
     que atende a condiçao na área de trabalho corrente a partir do registro
     inicial da abrangência.  Ele encerra quando é encontrada uma
     correspondência ou quando o final da abrangência do LOCATE for
     atingida.  Se houver correspondência, o registro que atende a condiçao
     pedida torna-se o registro corrente e a funçao FOUND() retorna valor
     verdadeiro (.T.).  Caso nao haja correspondência, a funçao FOUND()
     retorna valor falso (.F.), e o posicionamento do ponteiro dependerá do
     abrangência do comando LOCATE.

     Cada área de trabalho pode ter sua própria condiçao para LOCATE.  A
     condiçao permanece ativa até que você execute um outro comando LOCATE
     naquela área de trabalho ou a aplicaçao encerre.

     LOCATE trabalha juntamente com o comando CONTINUE.  Uma vez que o
     comando LOCATE tenha encerrado, você pode reiniciar a pesquisa a partir
     da posiçao corrente do ponteiro com o comando CONTINUE.  Existem,
     porém, algumas exceçoes. Veja a nota abaixo.

 Notas

       CONTINUE: O <abrangência> e a condiçao WHILE ambas
        aplicam-se somente ao comando LOCATE inicial, e nao sao operacionais
        para nenhum comando CONTINUE subsequente.  Para continuar um LOCATE
        pendente com um alcance ou condiçao WHILE, use SKIP e depois LOCATE
        REST WHILE <lCondiçao> ao invés de CONTINUE.

 Exemplos

       Estes exemplos mostram típicos comandos LOCATE:

        USE Sales INDEX Salesman
        LOCATE FOR Branch = "200"
        ? FOUND(), EOF(), RECNO()                  // Resulta: .T. .F. 5

        LOCATE FOR Branch = "5000"
        ? FOUND(), EOF(), RECNO()                  // Resulta: .F. .T. 85

       Este exemplo mostra um comando LOCATE com uma condiçao WHILE
        que é continuada usando LOCATE REST:

        SEEK "Bill"
        LOCATE FOR Branch = "200" WHILE Salesman = "Bill"
        DO WHILE FOUND()
           ? Branch, Salesman
           SKIP
           LOCATE REST FOR Branch = "200" WHILE Salesman = "Bill"
        ENDDO

 Arquivo:  Biblioteca CLIPPER.LIB.
 To download this example - click here.

See Also: CONTINUE SEEK SET FILTER EOF() FOUND()