Saltar al contenido principal
eLearner.app
Módulo 5 · Lección 1 de 29/10 en el curso~15 min
Lecciones del módulo (1/2)

Definición de Archivos y File-Control

En COBOL, la gestión de archivos externos (como archivos de texto o registros binarios en disco) es una de las funcionalidades más importantes para las aplicaciones empresariales de tipo batch. Dado que COBOL se diseñó mucho antes de las bases de datos modernas, los archivos en disco actúan como el almacenamiento primario.

El enlace entre los archivos físicos almacenados en el sistema operativo y las variables internas del programa se realiza en dos fases:

  1. Asociación lógico-física en la ENVIRONMENT DIVISION.
  2. Definición del registro de datos en la DATA DIVISION.

1. Asociación: FILE-CONTROL y SELECT ASSIGN

En el capítulo dedicado a la estructura del programa vimos la ENVIRONMENT DIVISION. En su interior se encuentra la INPUT-OUTPUT SECTION, dentro de la cual la sección FILE-CONTROL declara los archivos externos utilizados por el programa.

Para asociar un archivo lógico del programa (ej. SALES-FILE) a un archivo físico real en el disco (ej. sales.dat), se utiliza la instrucción SELECT ... ASSIGN TO ...:

Code
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT SALES-FILE ASSIGN TO "sales.dat"
               ORGANIZATION IS LINE SEQUENTIAL.
  • SELECT SALES-FILE: Define el nombre lógico que el programa utilizará para referirse al archivo.
  • ASSIGN TO "sales.dat": Especifica el nombre del archivo físico (o la ruta) en el disco.
  • ORGANIZATION IS LINE SEQUENTIAL (opcional): Indica que el archivo es un archivo de texto normal en el que cada línea representa un registro (separado por un carácter de retorno de carro).

2. Declaración: FILE SECTION y FD

Después de asociar el archivo en la ENVIRONMENT DIVISION, debemos definir la estructura de sus registros en la DATA DIVISION. Para hacerlo, utilizamos una sección dedicada llamada FILE SECTION (que precede a la WORKING-STORAGE SECTION).

Cada archivo seleccionado debe tener una entrada FD (File Description) que declare la estructura de su registro:

Code
       DATA DIVISION.
       FILE SECTION.
       FD SALES-FILE.
       01 SALES-RECORD.
           05 EMP-ID       PIC 9(5).
           05 EMP-NAME     PIC X(20).
           05 EMP-SALARY   PIC 9(6)V99.
  • FD SALES-FILE.: Identifica la descripción del archivo para el nombre lógico SALES-FILE. Nota que termina con un punto.
  • 01 SALES-RECORD.: Especifica la estructura de grupo (registro) asociada al archivo. Cada operación de lectura/escritura intercambiará datos utilizando esta estructura en memoria.

Pruébalo tú mismo

Ejercicio#cobol.m5.l1.e1
Intentos: 0Cargando...

Completa la ENVIRONMENT DIVISION para declarar la INPUT-OUTPUT SECTION y el párrafo FILE-CONTROL, asociando el archivo lógico SALES-FILE al archivo físico 'sales.dat' mediante la instrucción SELECT ASSIGN.

Cargando editor...
Mostrar pista

Escribe ENVIRONMENT DIVISION. e INPUT-OUTPUT SECTION. en la columna 8 (7 espacios), luego FILE-CONTROL. en la columna 8 y finalmente SELECT SALES-FILE ASSIGN TO 'sales.dat'. en la columna 12 (11 espacios).

Solución disponible después de 3 intentos

Ejercicio#cobol.m5.l1.e2
Intentos: 0Cargando...

Declara la DATA DIVISION y la FILE SECTION para el programa. Define el File Descriptor (FD) para el archivo SALES-FILE asociándole un registro de nivel 01 llamado SALES-RECORD que contenga dos campos subordinados: SALES-ID (numérico de 4 dígitos) y SALES-AMOUNT (numérico de 5 dígitos con 2 decimales implícitos).

Cargando editor...
Mostrar pista

Usa DATA DIVISION. y FILE SECTION. en la columna 8, FD SALES-FILE. en la columna 8, seguido en las líneas siguientes por 01 SALES-RECORD. en la columna 8 y los campos 05 SALES-ID PIC 9(4). y 05 SALES-AMOUNT PIC 9(5)V99. en la columna 12.

Solución disponible después de 3 intentos