Boa tarde, Existe alguma forma de eu ler um número dentro de um campo do tipo char? Por exemplo, tenho um campo endereço e dentro dele está assim: Rua Tiradentes, 125. Gostaria de ler somente o "125". Obrigada
Boa tarde, Existe várias formas. Se o campo vai ter sempre esse formato, vc pode usar o comando "ENTRY" pra pegar só o que tem depois da vírgula... Caso contrario vc pode fazer uma procedure como essa abaixo: PROCEDURE isolarNumeros: DEFINE INPUT PARAMETER pTexto AS CHARACTER NO-UNDO. DEFINE OUTPUT PARAMETER pNumero AS INTEGER NO-UNDO. /* pode ser decimal tb se necessário*/ DEFINE VARIABLE vNumeros AS CHARACTER NO-UNDO INITIAL '0,1,2,3,4,5,6,7,8,9'. DEFINE VARIABLE vContador AS INTEGER NO-UNDO. DEFINE VARIABLE vCharNumeros AS CHARACTER NO-UNDO. DO vContador = 1 TO LENGTH(pTexto): IF LOOKUP(SUBSTRING(pTexto,vContador,1), vNumeros, ',') <> 0 THEN ASSIGN vCharNumeros = vCharNumeros + SUBSTRING(pTexto,vContador,1). END. ASSIGN pNumero = INTEGER(vCharNumeros). END PROCEDURE. Lembrando que essa procedure vai buscar todos os números do texto recebido, então se passar algo como: "Rua Tiradentes, 125 - apto 21", a procedure vai retornar o número: 12521, que acredito que não seria o correto. Enfim, é só uma dica, adapte à sua necessidade.