En este módulo, profundizaremos en las técnicas avanzadas de manipulación de cadenas en REXX. La manipulación de cadenas es una habilidad esencial para cualquier programador, ya que muchas tareas de programación implican el procesamiento y la transformación de texto. Aprenderemos a utilizar funciones avanzadas y técnicas para manejar cadenas de manera eficiente y efectiva.

Contenido

Funciones de Manipulación de Cadenas

REXX proporciona una variedad de funciones integradas para la manipulación de cadenas. A continuación, se presentan algunas de las más útiles:

SUBSTR

La función SUBSTR se utiliza para extraer una subcadena de una cadena dada.

/* Ejemplo de uso de SUBSTR */
cadena = "Hola, Mundo!"
subcadena = SUBSTR(cadena, 6, 5)
SAY subcadena  /* Salida: Mundo */
  • cadena: La cadena original.
  • inicio: La posición inicial de la subcadena (1-indexada).
  • longitud: La longitud de la subcadena.

POS

La función POS devuelve la posición de la primera aparición de una subcadena dentro de una cadena.

/* Ejemplo de uso de POS */
cadena = "Hola, Mundo!"
posicion = POS("Mundo", cadena)
SAY posicion  /* Salida: 6 */
  • subcadena: La subcadena a buscar.
  • cadena: La cadena en la que se busca la subcadena.

OVERLAY

La función OVERLAY reemplaza una parte de una cadena con otra cadena.

/* Ejemplo de uso de OVERLAY */
cadena = "Hola, Mundo!"
nueva_cadena = OVERLAY("Amigo", cadena, 6)
SAY nueva_cadena  /* Salida: Hola, Amigo! */
  • nueva_subcadena: La subcadena que se va a insertar.
  • cadena: La cadena original.
  • inicio: La posición inicial donde se insertará la nueva subcadena.

STRIP

La función STRIP elimina los espacios en blanco de una cadena.

/* Ejemplo de uso de STRIP */
cadena = "   Hola, Mundo!   "
cadena_limpia = STRIP(cadena)
SAY cadena_limpia  /* Salida: Hola, Mundo! */
  • cadena: La cadena original.
  • opcional: Puede ser "L" (izquierda), "T" (ambos lados) o "R" (derecha).

Expresiones Regulares

Las expresiones regulares son una herramienta poderosa para la manipulación de cadenas. Aunque REXX no tiene soporte nativo para expresiones regulares, se pueden utilizar bibliotecas externas para este propósito.

Ejemplo con la Biblioteca Regina

/* Ejemplo de uso de expresiones regulares con Regina */
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs

cadena = "Hola, Mundo!"
pattern = "Mundo"
if SysPos(cadena, pattern) > 0 then
    SAY "Patrón encontrado"
else
    SAY "Patrón no encontrado"

División y Unión de Cadenas

PARSE

La instrucción PARSE se utiliza para dividir una cadena en partes.

/* Ejemplo de uso de PARSE */
cadena = "Hola, Mundo!"
PARSE VAR cadena saludo "," resto
SAY saludo  /* Salida: Hola */
SAY resto   /* Salida:  Mundo! */

CONCAT

La concatenación de cadenas se puede realizar utilizando el operador ||.

/* Ejemplo de concatenación de cadenas */
cadena1 = "Hola"
cadena2 = "Mundo"
cadena_completa = cadena1 || ", " || cadena2 || "!"
SAY cadena_completa  /* Salida: Hola, Mundo! */

Ejercicios Prácticos

Ejercicio 1: Extraer Subcadena

Descripción: Dada una cadena, extrae la subcadena que comienza en la posición 3 y tiene una longitud de 4 caracteres.

Código Inicial:

cadena = "Programación en REXX"
subcadena = /* Completa aquí */
SAY subcadena

Solución:

cadena = "Programación en REXX"
subcadena = SUBSTR(cadena, 3, 4)
SAY subcadena  /* Salida: ogram */

Ejercicio 2: Reemplazar Subcadena

Descripción: Reemplaza la palabra "Mundo" en la cadena "Hola, Mundo!" con "Amigo".

Código Inicial:

cadena = "Hola, Mundo!"
nueva_cadena = /* Completa aquí */
SAY nueva_cadena

Solución:

cadena = "Hola, Mundo!"
nueva_cadena = OVERLAY("Amigo", cadena, 6)
SAY nueva_cadena  /* Salida: Hola, Amigo! */

Ejercicio 3: Eliminar Espacios en Blanco

Descripción: Elimina los espacios en blanco al inicio y al final de la cadena " Hola, Mundo! ".

Código Inicial:

cadena = "   Hola, Mundo!   "
cadena_limpia = /* Completa aquí */
SAY cadena_limpia

Solución:

cadena = "   Hola, Mundo!   "
cadena_limpia = STRIP(cadena)
SAY cadena_limpia  /* Salida: Hola, Mundo! */

Conclusión

En esta sección, hemos explorado técnicas avanzadas para la manipulación de cadenas en REXX. Hemos aprendido a utilizar funciones integradas como SUBSTR, POS, OVERLAY y STRIP, así como a trabajar con expresiones regulares y a dividir y unir cadenas. Estas habilidades son fundamentales para el procesamiento de texto y te permitirán manejar cadenas de manera más eficiente en tus programas REXX.

En el próximo módulo, profundizaremos en las técnicas de análisis, donde aprenderemos a descomponer y analizar cadenas de texto de manera más detallada. ¡Sigue practicando y nos vemos en el siguiente módulo!

© Copyright 2024. Todos los derechos reservados