En este módulo, aprenderemos cómo manejar archivos en REXX. La capacidad de leer y escribir archivos es fundamental para muchas aplicaciones, y REXX proporciona una serie de funciones y técnicas para realizar estas operaciones de manera eficiente.

Contenido

Introducción a la E/S de Archivos

La entrada/salida (E/S) de archivos en REXX se realiza mediante el uso de funciones y comandos específicos que permiten abrir, leer, escribir y cerrar archivos. Estos son algunos de los conceptos clave:

  • Abrir un archivo: Preparar un archivo para lectura o escritura.
  • Leer un archivo: Extraer datos de un archivo.
  • Escribir un archivo: Guardar datos en un archivo.
  • Cerrar un archivo: Finalizar la operación de E/S y liberar recursos.

Abrir y Cerrar Archivos

Para trabajar con archivos en REXX, primero debemos abrirlos. Esto se hace utilizando el comando EXECIO. Aquí hay un ejemplo básico de cómo abrir y cerrar un archivo:

/* Abrir un archivo para lectura */
filename = "miarchivo.txt"
"EXECIO * DISKR" filename "(FINIS"

/* Abrir un archivo para escritura */
"EXECIO * DISKW" filename "(FINIS"
  • DISKR se utiliza para abrir un archivo en modo de lectura.
  • DISKW se utiliza para abrir un archivo en modo de escritura.
  • (FINIS indica que el archivo debe cerrarse después de la operación.

Leer Archivos

Para leer datos de un archivo, utilizamos el comando EXECIO con la opción DISKR. Aquí hay un ejemplo de cómo leer un archivo línea por línea:

/* Leer un archivo línea por línea */
filename = "miarchivo.txt"
"EXECIO * DISKR" filename "(STEM line."

/* Mostrar el contenido del archivo */
do i = 1 to line.0
    say line.i
end

En este ejemplo:

  • line. es una variable de tipo stem que almacena cada línea del archivo.
  • line.0 contiene el número total de líneas leídas.

Escribir Archivos

Para escribir datos en un archivo, utilizamos el comando EXECIO con la opción DISKW. Aquí hay un ejemplo de cómo escribir varias líneas en un archivo:

/* Escribir datos en un archivo */
filename = "miarchivo.txt"
line.1 = "Primera línea"
line.2 = "Segunda línea"
line.0 = 2

"EXECIO * DISKW" filename "(STEM line."

En este ejemplo:

  • line. es una variable de tipo stem que contiene las líneas a escribir.
  • line.0 indica el número total de líneas a escribir.

Ejemplos Prácticos

Ejemplo 1: Leer y Mostrar el Contenido de un Archivo

/* Leer y mostrar el contenido de un archivo */
filename = "miarchivo.txt"
"EXECIO * DISKR" filename "(STEM line."

if line.0 = 0 then
    say "El archivo está vacío o no se pudo leer."
else
    do i = 1 to line.0
        say line.i
    end

Ejemplo 2: Escribir Datos en un Archivo

/* Escribir datos en un archivo */
filename = "miarchivo.txt"
line.1 = "Hola, Mundo!"
line.2 = "Esta es una segunda línea."
line.0 = 2

"EXECIO * DISKW" filename "(STEM line."
say "Datos escritos en el archivo."

Ejercicios

Ejercicio 1: Leer un Archivo y Contar las Líneas

Instrucciones: Escribe un programa en REXX que lea un archivo y cuente el número de líneas que contiene. Muestra el resultado en la pantalla.

Solución:

/* Contar el número de líneas en un archivo */
filename = "miarchivo.txt"
"EXECIO * DISKR" filename "(STEM line."

if line.0 = 0 then
    say "El archivo está vacío o no se pudo leer."
else
    say "El archivo contiene" line.0 "líneas."

Ejercicio 2: Escribir un Archivo con Datos del Usuario

Instrucciones: Escribe un programa en REXX que solicite al usuario que ingrese varias líneas de texto y las guarde en un archivo.

Solución:

/* Escribir datos ingresados por el usuario en un archivo */
filename = "miarchivo.txt"
line.0 = 0

do forever
    say "Ingrese una línea de texto (o 'FIN' para terminar):"
    pull input
    if input = "FIN" then leave
    line.0 = line.0 + 1
    line.line.0 = input
end

"EXECIO * DISKW" filename "(STEM line."
say "Datos escritos en el archivo."

Conclusión

En esta sección, hemos aprendido cómo realizar operaciones básicas de entrada/salida de archivos en REXX. Hemos cubierto cómo abrir, leer, escribir y cerrar archivos, y hemos visto ejemplos prácticos y ejercicios para reforzar estos conceptos. Con estas habilidades, ahora puedes manejar archivos en tus programas REXX, lo que te permitirá crear aplicaciones más complejas y útiles.

En el próximo módulo, exploraremos cómo trabajar con arreglos en REXX, lo que te permitirá manejar colecciones de datos de manera más eficiente. ¡Sigue adelante!

© Copyright 2024. Todos los derechos reservados