Ver la Versión Completa : Extraer numeros de cadena alfanumerica
Alfredosite
31/03/09, 17:29:53
hola compañeros quisiera saber si existe alguna función que me obtenga los numeros de una cadena alfanumérica. por ejemplo.
Tengo
511 (1) 3211133
533 (2) 4566564-3
....
..
.
Quisiera obtener
51113211133
533245665643
....
..
.
Haber si alguien se anima por alguna idea :D
Muchas gracias.:)
cmacvicar
31/03/09, 21:31:41
*No Conozco Ninguna Función Pero Esto hace lo que quieres.
* Cambia los '(' por ' '.
TRANSLATE "Variable" using '( '.
* Cambia los ')' por ' '.
TRANSLATE "Variable" using ') '.
* Cambia los '-' por ' '.
TRANSLATE "Variable" using '-'.
* Condensa y elimina los espacios en Blanco
CONDENSE "Variable" NO-GAPS.
*Para que esto no se vea feo en el Código Encapsulado en una Rutina :p
Que Estes Bien Chauuu
Alfredosite
31/03/09, 22:23:07
*No Conozco Ninguna Función Pero Esto hace lo que quieres.
* Cambia los '(' por ' '.
TRANSLATE "Variable" using '( '.
* Cambia los ')' por ' '.
TRANSLATE "Variable" using ') '.
* Cambia los '-' por ' '.
TRANSLATE "Variable" using '-'.
* Condensa y elimina los espacios en Blanco
CONDENSE "Variable" NO-GAPS.
*Para que esto no se vea feo en el Código Encapsulado en una Rutina :p
Que Estes Bien Chauuu
Bueno lo que yo hize fue esto:
Si fuese entrada: +57 (1) 4253008
DO.
REPLACE '.' INTO p0105-usrid WITH ''.
REPLACE '+' INTO p0105-usrid WITH ''.
REPLACE '-' INTO p0105-usrid WITH ''.
REPLACE '(' INTO p0105-usrid WITH ''.
REPLACE ')' INTO p0105-usrid WITH ''.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDDO.
condense p0105-usrid no-gaps.
Salida Saldria : 5714253008
^
Pero esta lógica no funcionaria en caso en ese campo tenga.
por ejemplo: 511 - 12A (1F) -14
Si fuese asi con caracteres no solo ( ),-,(,.,+) entonces seria poco mas de lineas por cada no caracter no numerico....tal haya alguna función por ahi?? :(
Igual se agradece el aporte :rolleyes:
DavidXD_XD
01/04/09, 01:37:59
Hola, nunca he visto una funcion q haga eso, pero aqui va un pequeño algoritmo q puede servir
PARAMETERS: p_cadena TYPE string.
DATA: g_out TYPE string,
g_int TYPE i,
g_cont TYPE i,
g_char TYPE c.
RANGES: gr_num FOR g_char.
START-OF-SELECTION.
gr_num-sign = 'I'.
gr_num-option = 'BT'.
gr_num-low = '0'.
gr_num-high = '9'.
APPEND gr_num.
g_cont = STRLEN( p_cadena ).
DO g_cont TIMES.
IF p_cadena+g_int(1) IN gr_num.
CONCATENATE g_out p_cadena+g_int(1) INTO g_out.
ENDIF.
ADD 1 TO g_int.
ENDDO.
WRITE: g_out.
Ahi esta el parametro de entrada y salida, espero te pueda ayudar :D
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web