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 |
Buenas,
¿Te has mirado la ayuda para el comando FIND? Saludos, LouieBoy |
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 |
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 |
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 |
Muchas Gracias Loui, Ballan
Lo haré por código como me habeis comentado, ya que no existe el comando. Buen fin de semana. Saludos |
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 |
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 '-' ? :D
Saludos, LouieBoy |
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 |
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 |
Husos Horarios son GMT. La hora en este momento es 14:26:59. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web