BlogPL/1

Declaración de Ficheros en PL/I: Tipos, Lectura, Apertura y Cierre

En PL/I, trabajar con ficheros es una tarea fundamental para interactuar con datos. Este artículo detalla cómo declarar ficheros, abrirlos, leerlos y cerrarlos correctamente, acompañado de ejemplos prácticos que te ayudarán a entender mejor este proceso.


Declaración de Ficheros en PL/I

En PL/I, la declaración de ficheros se realiza con la palabra clave DCL. Aquí puedes especificar tanto el fichero como sus atributos asociados.

Ejemplo básico de declaración de fichero:

DCL FILE1 FILE;  /* Declaración básica de un fichero */

A menudo, un fichero está asociado a un buffer que actúa como área de transferencia de datos.
Ejemplo con buffer:

DCL FILE1 FILE RECORD INPUT;  
DCL BUFFER CHAR(80) VARYING;  /* Buffer asociado al fichero */

Tipos de declaración:

  1. Secuencial: Procesa registros de forma consecutiva.
  2. Directo: Permite acceder a registros específicos sin seguir el orden secuencial.
  3. Indexado: Ofrece acceso rápido mediante índices asociados a los registros.

Apertura de Ficheros

Para abrir un fichero, utiliza la instrucción OPEN. Debes especificar el modo de acceso, como INPUT (lectura), OUTPUT (escritura) o UPDATE (lectura/escritura).

Ejemplo de apertura de un fichero en modo lectura:

OPEN FILE(FILE1);

Para abrir un fichero en modo escritura:

OPEN FILE(FILE1) OUTPUT;

Lectura de Ficheros

La lectura de un fichero se realiza con la instrucción READ. Esto transfiere datos del fichero al buffer asociado.

Ejemplo básico de lectura secuencial:

READ FILE(FILE1) INTO(BUFFER);
PUT LIST('Registro leído:', BUFFER);

Si necesitas controlar el fin del fichero, puedes usar la condición END.
Ejemplo con manejo de fin de fichero:

DO WHILE (NOT EOF(FILE1));
   READ FILE(FILE1) INTO(BUFFER);
   PUT LIST('Registro leído:', BUFFER);
END;

Escritura en Ficheros

La instrucción WRITE permite escribir datos desde el buffer al fichero.

Ejemplo básico de escritura:

WRITE FILE(FILE1) FROM(BUFFER);

Cierre de Ficheros

Es fundamental cerrar un fichero cuando ya no se necesita, usando la instrucción CLOSE.

Ejemplo de cierre:

CLOSE FILE(FILE1);

Ejemplo Completo: Leer y Escribir en un Fichero

Aquí tienes un ejemplo práctico que combina declaración, apertura, lectura, escritura y cierre de ficheros.

DCL INPUT_FILE  FILE RECORD INPUT;
DCL OUTPUT_FILE FILE RECORD OUTPUT;
DCL RECORD_IN   CHAR(100) VARYING;
DCL RECORD_OUT  CHAR(100) VARYING;

OPEN FILE(INPUT_FILE);
OPEN FILE(OUTPUT_FILE);

DO WHILE (NOT EOF(INPUT_FILE));
   READ FILE(INPUT_FILE) INTO(RECORD_IN);
   RECORD_OUT = RECORD_IN;  /* Copiar contenido */
   WRITE FILE(OUTPUT_FILE) FROM(RECORD_OUT);
END;

CLOSE FILE(INPUT_FILE);
CLOSE FILE(OUTPUT_FILE);

PUT LIST('Proceso completado.');

Resumen de Tipos de Declaraciones y Aperturas de Ficheros en PL/I

En PL/I, trabajar con ficheros es fundamental para la gestión de datos. Este lenguaje permite declarar ficheros de diferentes tipos y acceder a ellos de forma flexible. A continuación, te presento un resumen de los principales tipos de declaración de ficheros y las modalidades de apertura.


Tipos de Declaración de Ficheros en PL/I

  1. Archivo Secuencial (Sequential File):
    Este tipo de fichero maneja los registros en un orden secuencial, lo que significa que solo puedes leer o escribir de manera continua, desde el principio hasta el final del archivo. Es el tipo más sencillo y común.
    Ejemplo de declaración:
   DCL FILE1 FILE SEQUENTIAL;
  1. Archivo Directo (Direct Access File):
    Permite acceder a registros específicos sin necesidad de recorrer todo el archivo de forma secuencial. Ideal para bases de datos y otros casos en los que se requiere un acceso más rápido y directo a los datos.
    Ejemplo de declaración:
   DCL FILE1 FILE DIRECT;
  1. Archivo Indexado (Indexed File):
    Utiliza un índice para organizar y acceder a los registros, lo que mejora la velocidad de acceso. Es adecuado para situaciones donde se necesitan búsquedas rápidas y precisas.
    Ejemplo de declaración:
   DCL FILE1 FILE INDEXED;

Tipos de Apertura de Ficheros en PL/I

Al abrir un fichero en PL/I, se debe especificar el modo de acceso, lo cual determina las operaciones que puedes realizar sobre el fichero (lectura, escritura o ambas). A continuación se describen los principales modos de apertura.

  1. Apertura en Modo Lectura (INPUT):
    Se utiliza cuando solo se necesita leer el fichero. No se permiten modificaciones en los datos.
    Ejemplo de apertura:
   OPEN FILE(FILE1) INPUT;
  1. Apertura en Modo Escritura (OUTPUT):
    Se utiliza para escribir en un fichero, y si el fichero ya existe, se sobrescribe. Si no existe, se crea un nuevo fichero.
    Ejemplo de apertura:
   OPEN FILE(FILE1) OUTPUT;
  1. Apertura en Modo Actualización (UPDATE):
    Permite tanto leer como escribir en el fichero. Es útil cuando se necesitan realizar modificaciones sobre los registros existentes.
    Ejemplo de apertura:
   OPEN FILE(FILE1) UPDATE;
  1. Apertura en Modo Adjunto (APPEND):
    Permite agregar nuevos datos al final de un fichero, sin sobrescribir su contenido.
    Ejemplo de apertura:
   OPEN FILE(FILE1) APPEND;

Conclusión

PL/I ofrece una gran flexibilidad al trabajar con ficheros, permitiendo utilizar diferentes tipos de ficheros (secuenciales, directos, indexados) según las necesidades de la aplicación y abrirlos en modos específicos (lectura, escritura, actualización, o adición). Estos conceptos son esenciales para gestionar eficazmente los datos en sistemas mainframe y optimizar el rendimiento de los programas.

La gestión de ficheros en PL/I es potente y flexible, adecuada para tareas desde procesamiento secuencial hasta acceso directo a datos. Este conocimiento es clave para optimizar el manejo de datos en entornos mainframe.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *