ABAP: Manejo de cadena de caracteres

En la siguiente guía veremos cómo operar con cadenas de caracteres (Entendemos por cadena de caracteres los siguientes tipos d, n, c, t y string)

 

Reemplazar

Para reemplazar un carácter o cadena de caracteres utilizaremos REPLACE.
Buscará el string1 (tardes) con el string2 (noches) en el string 3(Buenas tardes) y el resultado será Buenas noches.

DATA: string1 TYPE string VALUE 'tardes',
      string2 TYPE string VALUE 'noches',
      string3 TYPE string VALUE 'Buenas tardes'.

REPLACE string1 WITH string2 INTO string3.

 

Pasar a Mayúsculas/Minúsculas

Para pasar de mayúsculas a minúsculas o viceversa, utilizaremos TRANSALTE, indicando TO UPPER CASE para pasar a mayúsculas o TO LOWER CASE para pasar a minúsculas.

TRANSLATE string1 TO UPPER CASE.

TRANSLATE string1 TO LOWER CASE.

Separar

Para dividir una cadena de caracteres utilizaremos SPLIT, podremos indicar el carácter por el que queremos dividir indicándolo después de AT y donde queremos informar el resultado con INTO
Para dividirlo en una tabla utilizaremos INTO TABLE y declararemos una tabla de tipo STRING

SPLIT string1 AT SPACE INTO string2
                            string3
                            string4.

SPLIT string1 AT '-' INTO string2
                          string3.

DATA table TYPE TABLE OF string.
SPLIT string1 AT ':' INTO TABLE table.

 

Quitar espacios

Para eliminar los espacios de una cadena de caracteres utilizaremos CONDENSE.

CONDENSE string1 NO-GAPS

 

Concatenar

Para concatenar varias cadenas de caracteres utilizaremos CONCATENATE y utilizaremos SEPARATED BY para indicar el carácter por el que separar cada valor concatenado, esta última parte es opcional.

CONCATENATE string1 
            string2
            string3
       INTO string4
  SEPARATED BY space.

 

Longitud

Para calcular la longitud de una cadena de caracteres utilizaremos STRLEN y almacenaremos el resultado en una variable numérica, en este caso la variable int = 4.

DATA: string1 TYPE string VALUE 'Hola'
      int     TYPE i.

int = strlen(string1).

 

Seleccionar una parte

Para elegir una parte de una cadena de caracteres lo haremos de la siguiente manera: VARIABLE+caracteres a pasar(caracteres seleccionados)
En el siguiente ejemplo contaremos los siete primeros caracteres (corresponden a la palabra “Buenas”) y seleccionaría los 6 siguientes (corresponden a tardes), el contenido de string2 = ‘tardes’.

DATA: string1 TYPE string VALUE 'Buenas tardes',
      string2 TYPE string.

string2 = string1+6(6).

 

Desplazar

Para desplazar caracteres utilizaremos SHIFT indicando LEFT para desplazar a la izquierda o RIGHT para desplazar a la derecha seguido el número de espacios a desplazar.
En este caso desplazaremos a la izquierda 4 espacios y a la derecha 1 espacio.

SHIFT string1 LEFT BY 4 PLACES.

SHIFT string1 RIGHT by 1 PLACES.

 

Comparar

Para compara utilizaremos las siguientes instrucciones:

  • CO (Contains Only) Busca todos los caracteres de string1 en string2
  • CN (Contains Not Only) Comprueba que no esté ningún carácter de string1 en string2
  • CA (Contains Any) Busca si existe al menos un carácter de string2 está en string1
  • NA (Contains Not Any) Busca si no existe al menos un carácter de string2 está en string1
  • CS (Contains String) Comprueba que el conjunto de caracteres de string1 existe en el mismo formato en string2
  • NS (Contains No String) Comprueba que el conjunto de caracteres de string1 no existe en string2 en el mismo formato
  • CP (Suits Pattern) Comprueba si string2 está en string1, de ser así la variable SY-FDPOS guarda laposición de string2 dentro de string1
  • NP (Does Not Suit Pattern) Comprueba si string2 no está en string1

 

string1 CO string2.
string1 CN string2.
string1 CA string2.
string1 NA string2.
string1 CS string2.
string1 NS string2.
string1 CP string2.
string1 NP string2.

 

Buscar

Para buscar un patrón de caracteres en una variable utilizaremos SEARCH, en este ejemplo buscara string1 (dias) en string2 (Buenos dias) y si lo encuentra la variable SY-SUBRC contendrá la posición en la que empieza string1 en string2.

DATA: string1 TYPE string VALUE 'dias',
      string2 TYPE string VALUE 'Buenos dias'.

SEARCH string2 FOR string1.

 

Para ver más tutoriales de SAP, pulse en el siguiente enlace: Listado de tutoriales

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *