Página 1 de 1

continuo com problemas com a funcao at()

Enviado: 22 Dez 2004 12:20
por clebermano
Caros amigos, a algun tempo atras coloquei um post aki, para resolver um problema com a funcao at().realmente foi resolvido.So que agora acontece o seguinte, quando eu digito por exemplo 50.50, para a pesquisa a funcao me retorna tudo q tem 50.50 no arquivo, por exemplo 250.50, 150.50, eu precisaria que a funcao me retornasse somente o q foi digitado no get, se alguem puder me ajudar obrigado.
clebermanorp@yahoo.com.br

Enviado: 25 Dez 2004 12:03
por Dudu_XBase
Cleber Bom Dia !!
O que vc poderia fazer a função at() retorna a posição na string qdo encontra o item pesquisado.
Vou mostrar um exemplo:

cVar := "duduskate 50.50"
cVar2 := "duduskate 250.50"
// retornará 11
? at("50.50", cVar)

// retornará 12
? at("50.50", cVar2)

Para Solucionar eu pensei na seguinte forma, qdo ele localizar a string a ser pesquisada, vc verificar a posição anterior, verificando se é um digito se for é caso de ser um possível 150.50 ou 250.50 ....montei um exemplo abaixo espero q entenda essa minha lógica....

Código: Selecionar todos

  
    nPos := at("50.50",cVar2)
    if nPos > 0
         // se a posição anterior for um digito ...
         if isdigit(substr(cVar2,nPos-1,1))
              ? "Não satisfaz sua pesquisa....." 
         else // se posição anterior estiver em branco ou for uma letra...
                 ? "Pesquisa OK  "
         endif 
    else
         ? "Não encontrei nada... "
    endif