SAP ABAP: cadenas
Strings, que se utilizan ampliamente en la programación ABAP, son una secuencia de caracteres.
Usamos variables de tipo C para contener caracteres alfanuméricos, con un mínimo de 1 carácter y un máximo de 65,535 caracteres. De forma predeterminada, están alineados a la izquierda.
Creando cadenas
La siguiente declaración e inicialización crea una cadena que consta de la palabra "Hola". El tamaño de la cadena es exactamente el número de caracteres de la palabra "Hola".
Data my_Char(5) VALUE 'Hello'.
El siguiente programa es un ejemplo de creación de cadenas.
REPORT YT_SEP_15.
DATA my_Char(5) VALUE 'Hello'.
Write my_Char.
El código anterior produce la siguiente salida:
Hello
Longitud de la cuerda
Para encontrar la longitud de las cadenas de caracteres, podemos usar STRLEN statement. La función STRLEN () devuelve el número de caracteres contenidos en la cadena.
Ejemplo
REPORT YT_SEP_15.
DATA: title_1(10) VALUE 'Tutorials',
length_1 TYPE I.
length_1 = STRLEN( title_1 ).
Write: / 'The Length of the Title is:', length_1.
El código anterior produce la siguiente salida:
The Length of the Title is: 9
ABAP admite una amplia gama de declaraciones que manipulan cadenas.
S.No. | Declaración y propósito |
---|---|
1 | CONCATENATE Se unen dos cuerdas para formar una tercera cuerda. |
2 | CONDENSE Esta declaración elimina los caracteres de espacio. |
3 | STRLEN Se usa para encontrar la longitud de un campo. |
4 | REPLACE Se usa para hacer reemplazos en caracteres. |
5 | SEARCH Para ejecutar búsquedas en cadenas de caracteres. |
6 | SHIFT Se usa para mover el contenido de una cadena hacia la izquierda o hacia la derecha. |
7 | SPLIT Se utiliza para dividir el contenido de un campo en dos o más campos. |
El siguiente ejemplo hace uso de algunas de las declaraciones mencionadas anteriormente:
Ejemplo
REPORT YT_SEP_15.
DATA: title_1(10) VALUE 'Tutorials',
title_2(10) VALUE 'Point',
spaced_title(30) VALUE 'Tutorials Point Limited',
sep,
dest1(30),
dest2(30).
CONCATENATE title_1 title_2 INTO dest1.
Write: / 'Concatenation:', dest1.
CONCATENATE title_1 title_2 INTO dest2 SEPARATED BY sep.
Write: / 'Concatenation with Space:', dest2.
CONDENSE spaced_title.
Write: / 'Condense with Gaps:', spaced_title.
CONDENSE spaced_title NO-GAPS.
Write: / 'Condense with No Gaps:', spaced_title.
El código anterior produce la siguiente salida:
Concatenation: TutorialsPoint
Concatenation with Space: Tutorials Point
Condense with Gaps: Tutorials Point Limited
Condense with No Gaps: TutorialsPointLimited
Note -
En caso de concatenación, el 'sep' inserta un espacio entre los campos.
La instrucción CONDENSE elimina los espacios en blanco entre los campos, pero deja solo el espacio de 1 carácter.
'NO-GAPS' es una adición opcional a la declaración CONDENSE que elimina todos los espacios.