MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 09/07/13, 14:43:47
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Cambio la especificación entonces:


data letranumero type string.

data letras type string.
data cnumeros type string.

letranumero = '12159CSXD56245'.

write / letranumero.

while strlen( letranumero ) > 0.
if letranumero(1) CO '0123456789'.
concatenate letras letranumero(1) into letras.
else.
concatenate cnumeros letranumero(1) into cnumeros.
endif.
shift letranumero by 1 places left.
endwhile.

write / cnumeros.
write / letras.

Espero te ayude

Úlima edición por Mauricio Hidalgo fecha: 09/07/13 a las 14:46:17.
Responder Con Cita
  #2  
Viejo 09/07/13, 16:03:12
lissecita lissecita is offline
Junior Member
 
Fecha de Ingreso: jul 2013
Mensajes: 22
Gracias!!

Mauricio muchas gracias ya lo coloque y funciono perfecto! muchísimas gracias por tu colaboración... aprendí dos cosas nueva contigo
Responder Con Cita
  #3  
Viejo 10/07/13, 18:55:53
lissecita lissecita is offline
Junior Member
 
Fecha de Ingreso: jul 2013
Mensajes: 22
Pregunta



Mauricio una pregunta esto funciona perfecto pero en el caso en que el cliente requiera que se deje de esta manera letras = 12159CSXD y números = 56245, osea que los números que inician hagan parte de las letras y que después de las letras queden los números, se podría con este código colocar de esa manera???
Responder Con Cita
  #4  
Viejo 10/07/13, 19:06:48
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
La expresión regular de la solución adjunta considera que un alfanumerico es la combinación de cero o más numeros seguidos de 1 o más letras mayusculas o mínusculas en tanto que los numeros será la secuencia de 1 o más digitos:

alfanumerico = [0-9]*[A-Z|a-z]+
numero = [0-9]+


Cualquier otra cosa, incorporar espacios y cualquier otro caracter que necesites considerar o incluso que el string comienze con letras y luego números como alfanumerico tendrás que modificar la expresión regular.

Querdaría algo asi entonces:

data letranumero type string.
data offset type i.
data largo type i.
data letras type string.
data cnumeros type string.

letranumero = '12159CSXD56245'.

FIND REGEX '[0-9]*[A-Za-z]+' in letranumero MATCH OFFSET offset MATCH LENGTH largo.
letras = letranumero+offset(largo).
FIND REGEX '[0-9]+' in letranumero MATCH OFFSET offset MATCH LENGTH largo.
cnumeros = letranumero+offset(largo).

write / letranumero.
write / letras.
write / cnumeros.

Úlima edición por Mauricio Hidalgo fecha: 10/07/13 a las 19:36:08.
Responder Con Cita
  #5  
Viejo 10/07/13, 20:23:41
lissecita lissecita is offline
Junior Member
 
Fecha de Ingreso: jul 2013
Mensajes: 22
:(

Mauricio acabo de probar pero cuando pasa me dice por ejemplo de este caso 1CR6134 que letras es 1CR y el largo es 1 y me coloca el numero 1.
Responder Con Cita
  #6  
Viejo 10/07/13, 20:52:31
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Oka, dejalo asi:


data letranumero type string.
data offset type i.
data largo type i.
data letras type string.
data cnumeros type string.

letranumero = '1CR6134'.

FIND REGEX '[0-9]*[A-Za-z]+' in letranumero MATCH OFFSET offset MATCH LENGTH largo.
letras = letranumero+offset(largo).
cnumeros = letranumero+largo.

write / letranumero.
write / letras.
write / cnumeros.
Responder Con Cita
  #7  
Viejo 10/07/13, 21:41:48
lissecita lissecita is offline
Junior Member
 
Fecha de Ingreso: jul 2013
Mensajes: 22
Pregunta

Cuando hablas que se pueden incorporar cualquier otro carácter, dices que hay que modificar la expresión eso seria en el caso que se presentara el caso de algo así letrasnumero = 12CDF23N-2653256 seria fácil decir que el delimitador es '-' y el resto es el numero???
Responder Con Cita
  #8  
Viejo 11/07/13, 13:39:39
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
osea si hubiese un delimitador todo más facil. Pero si el "-" fuese parte de lo que se concidera alfanumerico hay que incorporarlo a la expresión regular.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 10:05:20.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web