En este tema, aprenderemos cómo crear utilidades en REXX que pueden ser utilizadas para automatizar tareas repetitivas, mejorar la eficiencia y facilitar el trabajo diario. Las utilidades en REXX son programas que realizan funciones específicas y pueden ser reutilizados en diferentes contextos.
Objetivos del Tema
- Comprender el concepto de utilidades en REXX.
- Aprender a diseñar y desarrollar utilidades básicas.
- Implementar ejemplos prácticos de utilidades en REXX.
- Proporcionar ejercicios para reforzar los conceptos aprendidos.
Conceptos Clave
- Utilidades en REXX: Programas que realizan tareas específicas y pueden ser reutilizados.
- Modularidad: Dividir el código en módulos o funciones reutilizables.
- Automatización: Uso de scripts para realizar tareas repetitivas sin intervención manual.
Ejemplo Práctico: Contador de Palabras
Vamos a crear una utilidad simple que cuenta el número de palabras en un archivo de texto.
Paso 1: Leer el Archivo de Texto
Primero, necesitamos leer el contenido del archivo de texto. Utilizaremos la función LINEIN
para leer cada línea del archivo.
/* Contador de Palabras en REXX */ filename = 'archivo.txt' call readFile filename readFile: procedure parse arg filename if stream(filename, 'C', 'QUERY EXISTS') = 'READY' then do file = open(filename) if file = '' then do say 'Error al abrir el archivo.' exit end else do content = '' do while lines(file) > 0 line = linein(file) content = content || ' ' || line end call countWords content end end else do say 'El archivo no existe.' exit end return open: procedure parse arg filename return stream(filename, 'C', 'OPEN')
Paso 2: Contar las Palabras
Ahora que tenemos el contenido del archivo, podemos contar las palabras. Utilizaremos la función WORDS
para contar el número de palabras en una cadena.
countWords: procedure parse arg content numWords = words(content) say 'El archivo contiene' numWords 'palabras.' return
Código Completo
Aquí está el código completo de la utilidad de contador de palabras:
/* Contador de Palabras en REXX */ filename = 'archivo.txt' call readFile filename readFile: procedure parse arg filename if stream(filename, 'C', 'QUERY EXISTS') = 'READY' then do file = open(filename) if file = '' then do say 'Error al abrir el archivo.' exit end else do content = '' do while lines(file) > 0 line = linein(file) content = content || ' ' || line end call countWords content end end else do say 'El archivo no existe.' exit end return open: procedure parse arg filename return stream(filename, 'C', 'OPEN') countWords: procedure parse arg content numWords = words(content) say 'El archivo contiene' numWords 'palabras.' return
Explicación del Código
- Lectura del Archivo: La función
readFile
abre el archivo y lee su contenido línea por línea, concatenando cada línea en una cadena llamadacontent
. - Conteo de Palabras: La función
countWords
utiliza la funciónWORDS
para contar el número de palabras en la cadenacontent
y muestra el resultado.
Ejercicio Práctico
Ejercicio 1: Contador de Líneas
Modifica la utilidad anterior para que también cuente el número de líneas en el archivo y muestre ambos resultados (número de palabras y número de líneas).
Solución
/* Contador de Palabras y Líneas en REXX */ filename = 'archivo.txt' call readFile filename readFile: procedure parse arg filename if stream(filename, 'C', 'QUERY EXISTS') = 'READY' then do file = open(filename) if file = '' then do say 'Error al abrir el archivo.' exit end else do content = '' lineCount = 0 do while lines(file) > 0 line = linein(file) content = content || ' ' || line lineCount = lineCount + 1 end call countWordsAndLines content, lineCount end end else do say 'El archivo no existe.' exit end return open: procedure parse arg filename return stream(filename, 'C', 'OPEN') countWordsAndLines: procedure parse arg content, lineCount numWords = words(content) say 'El archivo contiene' numWords 'palabras y' lineCount 'líneas.' return
Retroalimentación y Consejos
- Errores Comunes: Asegúrate de que el archivo existe antes de intentar abrirlo. Utiliza
stream(filename, 'C', 'QUERY EXISTS')
para verificar la existencia del archivo. - Consejo: Divide tu código en funciones o procedimientos para mejorar la legibilidad y la reutilización.
Conclusión
En este tema, hemos aprendido a crear una utilidad básica en REXX para contar palabras en un archivo de texto. Hemos visto cómo leer archivos, manipular cadenas y contar palabras utilizando funciones integradas de REXX. Además, hemos practicado con un ejercicio para contar líneas en el archivo. Estas habilidades son fundamentales para crear utilidades más complejas y útiles en REXX.
En el próximo tema, exploraremos cómo acceder a bases de datos utilizando REXX, lo que nos permitirá crear aplicaciones más avanzadas y funcionales.
Curso de Programación REXX
Módulo 1: Introducción a REXX
- ¿Qué es REXX?
- Configuración del Entorno REXX
- Hola Mundo en REXX
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
Módulo 2: Conceptos Básicos de Programación
- Operadores y Expresiones
- Estructuras de Control: IF/THEN/ELSE
- Bucles: DO y LEAVE
- Entrada y Salida
- Manipulación Básica de Cadenas
Módulo 3: Programación Intermedia en REXX
- Funciones y Subrutinas
- Funciones Integradas
- Manejo de Errores
- Operaciones de Entrada/Salida de Archivos
- Trabajando con Arreglos
Módulo 4: Programación Avanzada en REXX
- Manipulación Avanzada de Cadenas
- Técnicas de Análisis
- Interfaz con Programas Externos
- Macros en REXX
- Optimización del Rendimiento