Página 1 de 1
Portaria CAT102 - Função p/ extrair os números de uma string
Enviado: 23 Jan 2008 13:53
por cainelli
Colegas,
Alguém tem para disponibilizar uma função que extraia apenas os números de uma string ?
Poderia tentar fazer, mas estas portarias tomaram todo meu tempo.
Obrigado,
Marcello.
Enviado: 23 Jan 2008 18:21
por cainelli
Colegas,
Acho q consegui fazer :
Código: Selecionar todos
Function ApenasNumerosStr(pStr)
Local I:= 0
Result:= ''
For I := 1 To Len(pStr)
If Substr(pStr,I,1) $ '1234567890'
Result:= Result + Substr(pStr,I,1)
endif
Next
Return (Result)
:xau Marcello.
Enviado: 23 Jan 2008 21:13
por alaminojunior
Existe também a função REMALL() da CATolls.
resultado:= REMALL("mais vale 1 passaro na mão","1")
resultado = mais vale passaro na mão
Enviado: 23 Jan 2008 22:52
por alaminojunior
Ah sim , me ocorreu uma outra coisa agora. Desculpe, mas acho que o que vc quer deve ser isso.
Caso o que vc queira, seja extrair os numeros de uma string que contenham pontos e vírgulas....
GT:= "000.006.908.876,07"
use a strtran()
gt:= strtran(gt,",","") // extrai a virgula
gt:= strtran(gt,".","") // extrai o ponto
na verdade ela não extrai, e sim substitui. Mas a gente engana ela.

)
Enviado: 24 Jan 2008 02:20
por Maligno
alaminojunior escreveu:Existe também a função REMALL() da CATolls.
Essa eu não conhecia.

Enviado: 24 Jan 2008 07:43
por cainelli
Alamino,
Obrigado pelas dicas, mas preciso extrair tudo, ponto, virgula, letras e acho q da maneira como fiz vai me atender melhor.
Abraço,
Marcello.
Enviado: 24 Jan 2008 09:09
por Maligno
Mas ao que parece, quando você diz "extrair", significa "manter". E no código do colega AlaminoJunior "extrair" significa "fazer sumir". Se extrair significa manter, o seu código dá conta direitinho. Ou você, caso use a CAT, poderia usar a tal da REMALL().
Enviado: 24 Jan 2008 09:54
por cainelli
Maligno,
Realmente me expressei mal, minha necessidade é manter apenas os números. Com StrTran daria certo, mas teria q fazer muitas comparações.
Postei como fiz aqui no forum para o caso de alguém precisar, pois na CAT102 pede o número da residencia separado do endereço e o campo é obrigatório.
No meu cadastro, o número da casa esta junto com o endereço, então foi a maneira que encontrei de resolver. Estou usando também em campos como CPF, CNPJ, etc.
Marcello.
Enviado: 24 Jan 2008 09:57
por Maligno
Ah, agora entendi. Por essas e outras que sempre mantenho o número separado.
Mas e se tiver algo do tipo: "RUA 15 DE NOVEMBRO"? Ajusta no "braço"?
Aliás, acho que o termo "extrair" está mais facilmente compreensível no seu caso. Entendo que extrair seja o mesmo que "aproveitar", não "descartar". Mas pelo menos o caso está resolvido.
