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
continuo com problemas com a funcao at()
Moderador: Moderadores
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
continuo com problemas com a funcao at()
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
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....
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
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle