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.