En este tema, aprenderemos cómo manipular cadenas de texto en el Lenguaje de Control (CL). La manipulación de cadenas es una habilidad esencial para cualquier programador, ya que permite trabajar con datos textuales de manera eficiente. Veremos cómo definir, concatenar, extraer y modificar cadenas de texto utilizando comandos y funciones de CL.

Contenidos

Definición de Cadenas

En CL, las cadenas de texto se definen utilizando variables de tipo CHAR o VARCHAR. Aquí hay un ejemplo de cómo definir una cadena:

DCL VAR(&MI_CADENA) TYPE(*CHAR) LEN(50)
CHGVAR VAR(&MI_CADENA) VALUE('Hola, Mundo!')
  • DCL: Declara una variable.
  • VAR(&MI_CADENA): Nombre de la variable.
  • TYPE(*CHAR): Tipo de la variable (cadena de caracteres).
  • LEN(50): Longitud de la cadena.
  • CHGVAR: Cambia el valor de una variable.
  • VALUE('Hola, Mundo!'): Valor asignado a la variable.

Concatenación de Cadenas

La concatenación de cadenas se realiza utilizando el operador ||. Aquí hay un ejemplo:

DCL VAR(&CADENA1) TYPE(*CHAR) LEN(25)
DCL VAR(&CADENA2) TYPE(*CHAR) LEN(25)
DCL VAR(&RESULTADO) TYPE(*CHAR) LEN(50)

CHGVAR VAR(&CADENA1) VALUE('Hola, ')
CHGVAR VAR(&CADENA2) VALUE('Mundo!')
CHGVAR VAR(&RESULTADO) VALUE(&CADENA1 || &CADENA2)

En este ejemplo, &RESULTADO contendrá la cadena Hola, Mundo!.

Extracción de Subcadenas

Para extraer subcadenas, utilizamos la función %SST. Aquí hay un ejemplo:

DCL VAR(&CADENA) TYPE(*CHAR) LEN(50)
DCL VAR(&SUBCADENA) TYPE(*CHAR) LEN(5)

CHGVAR VAR(&CADENA) VALUE('Hola, Mundo!')
CHGVAR VAR(&SUBCADENA) VALUE(%SST(&CADENA 1 5))
  • %SST(&CADENA 1 5): Extrae una subcadena de &CADENA comenzando en la posición 1 y con una longitud de 5 caracteres. En este caso, &SUBCADENA contendrá Hola,.

Modificación de Cadenas

Podemos modificar cadenas utilizando varias funciones. Aquí hay algunos ejemplos:

Reemplazo de Subcadenas

Para reemplazar una subcadena, utilizamos la función %REPLACE:

DCL VAR(&CADENA) TYPE(*CHAR) LEN(50)
DCL VAR(&NUEVA_CADENA) TYPE(*CHAR) LEN(50)

CHGVAR VAR(&CADENA) VALUE('Hola, Mundo!')
CHGVAR VAR(&NUEVA_CADENA) VALUE(%REPLACE('Amigo' &CADENA 7 5))
  • %REPLACE('Amigo' &CADENA 7 5): Reemplaza 5 caracteres en &CADENA comenzando en la posición 7 con la cadena Amigo. &NUEVA_CADENA contendrá Hola, Amigo!.

Conversión a Mayúsculas/Minúsculas

Para convertir una cadena a mayúsculas o minúsculas, utilizamos las funciones %UPPER y %LOWER:

DCL VAR(&CADENA) TYPE(*CHAR) LEN(50)
DCL VAR(&MAYUSCULAS) TYPE(*CHAR) LEN(50)
DCL VAR(&MINUSCULAS) TYPE(*CHAR) LEN(50)

CHGVAR VAR(&CADENA) VALUE('Hola, Mundo!')
CHGVAR VAR(&MAYUSCULAS) VALUE(%UPPER(&CADENA))
CHGVAR VAR(&MINUSCULAS) VALUE(%LOWER(&CADENA))
  • %UPPER(&CADENA): Convierte &CADENA a mayúsculas.
  • %LOWER(&CADENA): Convierte &CADENA a minúsculas.

Ejercicios Prácticos

Ejercicio 1: Concatenación de Cadenas

Instrucciones:

  1. Declara dos variables de tipo CHAR con una longitud de 20.
  2. Asigna valores a ambas variables.
  3. Concatenar las dos cadenas y almacenar el resultado en una tercera variable.

Solución:

DCL VAR(&CADENA1) TYPE(*CHAR) LEN(20)
DCL VAR(&CADENA2) TYPE(*CHAR) LEN(20)
DCL VAR(&RESULTADO) TYPE(*CHAR) LEN(40)

CHGVAR VAR(&CADENA1) VALUE('Hola, ')
CHGVAR VAR(&CADENA2) VALUE('Mundo!')
CHGVAR VAR(&RESULTADO) VALUE(&CADENA1 || &CADENA2)

Ejercicio 2: Extracción de Subcadenas

Instrucciones:

  1. Declara una variable de tipo CHAR con una longitud de 30.
  2. Asigna un valor a la variable.
  3. Extrae una subcadena de 5 caracteres comenzando en la posición 8.

Solución:

DCL VAR(&CADENA) TYPE(*CHAR) LEN(30)
DCL VAR(&SUBCADENA) TYPE(*CHAR) LEN(5)

CHGVAR VAR(&CADENA) VALUE('Bienvenidos al curso de CL')
CHGVAR VAR(&SUBCADENA) VALUE(%SST(&CADENA 8 5))

Ejercicio 3: Reemplazo de Subcadenas

Instrucciones:

  1. Declara una variable de tipo CHAR con una longitud de 50.
  2. Asigna un valor a la variable.
  3. Reemplaza una subcadena de 6 caracteres comenzando en la posición 12 con la cadena CL.

Solución:

DCL VAR(&CADENA) TYPE(*CHAR) LEN(50)
DCL VAR(&NUEVA_CADENA) TYPE(*CHAR) LEN(50)

CHGVAR VAR(&CADENA) VALUE('Bienvenidos al curso de Python')
CHGVAR VAR(&NUEVA_CADENA) VALUE(%REPLACE('CL' &CADENA 12 6))

Conclusión

En esta sección, hemos aprendido cómo manipular cadenas de texto en CL. Hemos cubierto la definición de cadenas, concatenación, extracción de subcadenas y modificación de cadenas. Estos conceptos son fundamentales para trabajar con datos textuales en CL y te prepararán para tareas más avanzadas en programación.

Asegúrate de practicar los ejercicios proporcionados para reforzar tu comprensión y estar listo para el siguiente módulo, donde exploraremos las estructuras de control en CL.

© Copyright 2024. Todos los derechos reservados