Extraer números de un editbox

Mi problema es que le pego un texto de varias líneas al editbox y necesito extraer todos los números que vienen en el texto y enviarlo a otro editbox .

Ejemplo . El lunes 31 del 10 del 2015 cobre 1500 pesos y me quedaron debiendo 350 .

El resto lo cobro el jueves 3 a las 13:20 hs,

Puedo pasa al 2do tbox solo el 31 - 10 -2015 -1500 -350 - 3 -13-¿20 etc etc . Solo números?.

2 Respuestas

Respuesta
2

Vas a tener un problema cuando el usuario no inserte un espacio entre los números, pero eso ya sería cuestión de examinar los casos de uso, aquí la forma en que yo lo haría.

Primero debes de separar la cadena dentro de un array, tomando como separador el espacio, después con un ciclo barres el array y preguntas si es numero ISDIGIT(tu_cadena) y eso se lo pasas al otro editbox.

Respuesta
1

Haz una función (ó método dentro de un form) que valide si un carácter si es número.

Luego con un ciclo for "barres" el contenido del edit box, y cada que "empiece un numero" creas otro ciclo que vaya concatenando los caracteres hasta que deje que de ser número, para ésto último usando la funcion que creaste al inicio.

Muchas gracias amigo Cesar . En teoría había pensaldo algo así, pero no se como hacerlo . No se en que método del from poner dicha función por ejemplo .

Si me puedes aclarar algo más, te lo agradezco pila, de todas formas gracias por tu tiempo .

Mmm

Se me ocurreo algo asi:

LOCAL cCadenaOrigen, nAncho, cLetraActual, cNumTmp, nI, cCadenaSalida

cCadenaOrigen = alltrim(thisform.txtedit1.value)

cCadenaSalida = ''

nAncho = LEN(cCadenaOrigen)

cNumTmp = ''

FOR nI = 1 to nAncho

cLetraActual = SUBSTR(cCadenaOrigen, nI, 1)

IF ISDIGIT(cLetraActual)

   nNumTmp = nNumTmp + cLetraActual

ELSE

IF !EMPTY(cNumTmp)

     cCadenaSalida = cCadenaSalida +' - '  + cNumTmp

     cNumTmp = ''

ENDIF

ENDIF

ENDFOR

Olvidé asignar el resultado al otro edit box:

thisform.edit2.value = cCadenaSalida

¡Gracias! Impresionante ! Un golazo espectacular . anda perfecto .

Saca los números aunque este dentro de letras .

La verdad Cesar te felicito, pensé que no se podía .

Gracias 1000. y disculpa la joda .

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas