#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
Buenas,
¿Te has mirado la ayuda para el comando FIND? Saludos, LouieBoy |
#3
|
|||
|
|||
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 |
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
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 |
#6
|
|||
|
|||
Muchas Gracias Loui, Ballan
Lo haré por código como me habeis comentado, ya que no existe el comando. Buen fin de semana. Saludos |
#7
|
||||
|
||||
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: |
#8
|
|||
|
|||
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 |
#9
|
||||
|
||||
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: |
#10
|
|||
|
|||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|