En este módulo, aprenderemos cómo manejar archivos en RPG. Trabajar con archivos es una habilidad esencial para cualquier programador, ya que permite almacenar, leer y manipular datos de manera persistente. Exploraremos cómo abrir, leer, escribir y cerrar archivos en RPG.
Conceptos Clave
- Tipos de Archivos: En RPG, los archivos pueden ser de varios tipos, como archivos físicos (PF), archivos lógicos (LF), y archivos de datos (DF).
- Operaciones Básicas: Las operaciones básicas incluyen abrir, leer, escribir y cerrar archivos.
- Declaración de Archivos: Cómo declarar archivos en el programa RPG.
- Lectura y Escritura de Datos: Métodos para leer y escribir datos en archivos.
Declaración de Archivos
En RPG, los archivos se declaran en la sección de especificaciones de archivo (F-spec). Aquí hay un ejemplo de cómo declarar un archivo físico:
F
: Indica que es una especificación de archivo.MYFILE
: Nombre del archivo.I
: Indica que el archivo es de entrada.F
: Indica que el archivo es de salida.E
: Indica que el archivo es de entrada/salida.K
: Indica que el archivo está indexado.DISK
: Indica que el archivo está en disco.
Abrir y Cerrar Archivos
En RPG, los archivos se abren automáticamente cuando se ejecuta el programa. Sin embargo, es importante saber cómo cerrarlos explícitamente si es necesario.
*INLR
: Indicador de fin de programa. Cuando se establece enON
, cierra todos los archivos abiertos.
Lectura de Archivos
Para leer un archivo, utilizamos la operación READ
. Aquí hay un ejemplo:
READ
: Operación para leer un registro del archivo.MYREC
: Nombre del registro que se leerá.
Escritura en Archivos
Para escribir en un archivo, utilizamos la operación WRITE
. Aquí hay un ejemplo:
WRITE
: Operación para escribir un registro en el archivo.MYREC
: Nombre del registro que se escribirá.
Ejemplo Práctico
Vamos a crear un programa simple que lea datos de un archivo y los escriba en otro archivo.
Código de Ejemplo
FINPUTFILE IF E K DISK FOUTPUTFILE OF E K DISK D MYREC E DS EXTNAME(INPUTFILE) C *IN90 DOWEQ *OFF C INPUTFILE READ MYREC C IF %EOF(INPUTFILE) C LEAVE C ENDIF C OUTPUTFILEWRITE MYREC C ENDDO C *INLR SETON
Explicación del Código
-
Declaración de Archivos:
FINPUTFILE IF E K DISK FOUTPUTFILE OF E K DISK
INPUTFILE
: Archivo de entrada.OUTPUTFILE
: Archivo de salida.
-
Declaración de Estructura de Datos:
D MYREC E DS EXTNAME(INPUTFILE)
MYREC
: Estructura de datos que representa un registro del archivo de entrada.
-
Bucle de Lectura y Escritura:
C *IN90 DOWEQ *OFF C INPUTFILE READ MYREC C IF %EOF(INPUTFILE) C LEAVE C ENDIF C OUTPUTFILEWRITE MYREC C ENDDO
DOWEQ *OFF
: Bucle que se ejecuta mientras no se alcance el final del archivo.READ MYREC
: Lee un registro del archivo de entrada.IF %EOF(INPUTFILE)
: Verifica si se ha alcanzado el final del archivo.LEAVE
: Sale del bucle si se ha alcanzado el final del archivo.WRITE MYREC
: Escribe el registro en el archivo de salida.
-
Cerrar Archivos:
C *INLR SETON
*INLR SETON
: Cierra todos los archivos abiertos al final del programa.
Ejercicio Práctico
Ejercicio 1: Copiar Contenido de un Archivo a Otro
Objetivo: Crear un programa que copie el contenido de un archivo de entrada a un archivo de salida.
Instrucciones:
- Declara dos archivos: uno de entrada y otro de salida.
- Lee cada registro del archivo de entrada.
- Escribe cada registro en el archivo de salida.
- Cierra los archivos al final del programa.
Solución
FINPUTFILE IF E K DISK FOUTPUTFILE OF E K DISK D MYREC E DS EXTNAME(INPUTFILE) C *IN90 DOWEQ *OFF C INPUTFILE READ MYREC C IF %EOF(INPUTFILE) C LEAVE C ENDIF C OUTPUTFILEWRITE MYREC C ENDDO C *INLR SETON
Conclusión
En esta sección, hemos aprendido cómo manejar archivos en RPG. Hemos cubierto la declaración de archivos, la lectura y escritura de datos, y cómo cerrar archivos. También hemos visto un ejemplo práctico y un ejercicio para reforzar los conceptos aprendidos. En el próximo módulo, exploraremos cómo acceder a bases de datos en RPG.
Curso de Programación RPG
Módulo 1: Introducción a la Programación RPG
- ¿Qué es RPG?
- Configuración de tu Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Programa Hola Mundo
Módulo 2: Conceptos Básicos
- Tipos de Datos y Variables
- Operadores y Expresiones
- Estructuras de Control
- Funciones y Procedimientos
Módulo 3: Trabajando con Datos
Módulo 4: Técnicas Avanzadas de Programación
Módulo 5: RPG IV y Más Allá
Módulo 6: Integrando RPG con Tecnologías Modernas
Módulo 7: Aplicaciones del Mundo Real
- Construyendo una Aplicación Simple
- Estudio de Caso: Sistema de Gestión de Inventarios
- Estudio de Caso: Sistema de Nómina
- Mejores Prácticas y Revisión de Código