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.'
returnExplicación del Código
- Lectura del Archivo: La función
readFileabre 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
countWordsutiliza la funciónWORDSpara contar el número de palabras en la cadenacontenty 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.'
returnRetroalimentació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
