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 29/02/08, 09:22:50
malaga01 malaga01 is offline
Member
 
Fecha de Ingreso: feb 2007
Mensajes: 93
Número de posición de un caracter en string

Hola:

Una duda básica pero que no acabo de encontrar respuesta.

En un campo string, tengo numeros separados por '-', necesito saber como puedo calcular la posición que tiene '-' para tomar sólo los primeros caracters que son lo numéricos.

¿Hay algún comando o función que te diga el número de posición de un caracter en un string? No he encontrado nada en la ayuda ni usando el buscador.

Gracias por vuestr ayuda.

Saludos
Responder Con Cita
  #2  
Viejo 29/02/08, 09:29:18
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Buenas,

¿Te has mirado la ayuda para el comando FIND?

Saludos,

LouieBoy
Responder Con Cita
  #3  
Viejo 29/02/08, 10:14:20
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Quiza te interese mas hacer lo siguiente:

data: cadena(8) values '01-02-03',
numero1(2)
numero2(2)
numero3(2).

split cadena at '-' into numero1 numero2 numero3.

en numero1 te almacenaria 01
en numero2 te almacenaria 02
en numero3 te almacenaria 03
Responder Con Cita
  #4  
Viejo 29/02/08, 10:15:14
malaga01 malaga01 is offline
Member
 
Fecha de Ingreso: feb 2007
Mensajes: 93
Hola LouieBoy:

He bsucado el comando FIND, pero no existe en la versión 4.6C no existe ¿Sabes si hay alguno similar? El comando SEARCH no hace lo mismo.

Gracias por tu respuesta.

Saludos
Responder Con Cita
  #5  
Viejo 29/02/08, 10:33:20
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
hmmm, vaya putada, si la solucion que te ha dado el compi no te sirve, siempre puedes hacer una rutina rollo:

strlen de la string

WHILE longitud de la string <= contador_general.
add 1 to contador
add 1 to contador_general
if string(1)+contador = '-'.
contador contendra la cantidad de caracteres hasta -
clear contador.
endif.
ENDWHILE.

Es lo primero que se me ocurre. respecto al search creo, que no te deja hacer for all ocurrences, lo que significa que a la que encuentre el primer guion, acabara.

Saludos,

LouieBoy
Responder Con Cita
  #6  
Viejo 29/02/08, 10:46:50
malaga01 malaga01 is offline
Member
 
Fecha de Ingreso: feb 2007
Mensajes: 93
Muchas Gracias Loui, Ballan

Lo haré por código como me habeis comentado, ya que no existe el comando.

Buen fin de semana.

Saludos
Responder Con Cita
  #7  
Viejo 29/02/08, 11:52:15
Avatar de Floren
Floren Floren is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Localización: Málaga/Barcelona/Madrid
Mensajes: 209
Hola compañero de Málaga,

Con la sentencia SEARCH lo puedes hacer, te cuento:

search cadena for '-'.

En sy-postd te vendrá el desplazamiento del caracter '-' dentro de la cadena.
En este caso, si cadena valiese 'hola-amigo':
sy-subrc valdría 0 por haber encontrado el caracter '-'.
sy-postd valdría 4, por ser el desplazamiento.

Espero haberte ayudado. Por cierto, en Málaga ... estarás en coritel no?

Un saludo
__________________
Florentín Navarrete Moya
SAP HCM Consultant
Mail:
Blog:
Responder Con Cita
  #8  
Viejo 03/03/08, 06:58:58
LouieBoy LouieBoy is offline
Member
 
Fecha de Ingreso: ago 2006
Mensajes: 86
Floren, no es nada personal, pero vamos a ser un poco malos... que pasa si tienes esto hola-amigo-quetal? y utilizas el search con '-' ?

Saludos,

LouieBoy
Responder Con Cita
  #9  
Viejo 03/03/08, 10:18:36
Avatar de Floren
Floren Floren is offline
Senior Member
 
Fecha de Ingreso: abr 2006
Localización: Málaga/Barcelona/Madrid
Mensajes: 209
Hola LouieBoy,

La pregunta de malaga01 era:
'¿Hay algún comando o función que te diga el número de posición de un caracter en un string?'. Y con mi post anterior quedaría resuelta.

Si quieres obtener todas las posiciones, es cuestión de añadir algo de código. Por ejemplo:

REPORT ztest_floren.

PARAMETERS: cadena(40) TYPE c.

DATA: aux(40) TYPE c,
cont TYPE i,
len type i.

CLEAR: aux, cont, len.
aux = cadena.

DO.
SEARCH aux FOR '-'.
IF sy-subrc EQ 0.
len = strlen( aux ).
IF len EQ 1.
WRITE: len, /.
exit.
ELSE.
cont = 1 + cont + sy-fdpos.
WRITE: cont, /.
aux = cadena+cont.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.

Este report te escribirá en pantalla todas las apariciones del caracter '-' en el string que introduzcas por pantalla.

Si hay algo que no entiendes, postéalo.

Un saludo
__________________
Florentín Navarrete Moya
SAP HCM Consultant
Mail:
Blog:
Responder Con Cita
  #10  
Viejo 03/03/08, 10:33:04
malaga01 malaga01 is offline
Member
 
Fecha de Ingreso: feb 2007
Mensajes: 93
Gracias por las aclaraciones, está todo más que claro con lo que me habéis comentado.

Por cierto Floren, estuve, pero ya no estoy allí.

Saludos
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 07:58:31.


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