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:
- Asociación lógico-física en la
ENVIRONMENT DIVISION. - 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 ...:
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:
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ógicoSALES-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
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.
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
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).
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