Está en la página 1de 5

Cobol.

Archivos, acceder al enlace.


https://es.wikipedia.org/wiki/Archivo_(inform%C3%A1tica)

Para trabajar con archivos en cobol estos se deben ser especificados en la ENVIRONMENT
DIVISION, a continuación, formato de dicha división.

Hay que recordar que, la ENVIRONMENT DIVISION es la segunda división en el esquema de


codificación en COBOL.
Descripción de la Sintaxis <ENVIRONMENT DIVISION>.
Como se aprecia en su sintaxis, ésta segunda división se divide a su vez en dos
secciones, que se describen a continuación.

CONFIGURATION SECTION
Se emplea para describir los tipos de computadores en los cuales se escribió y se
ejecutará el programa, estos valores se introducen en sus respectivas líneas
como se observa en la sintaxis.

Para la línea de SPECIAL-NAMES el uso más habitual es el de cambiar el punto


decimal usado por los ingleses por la coma y así poder especificar los puntos
para los miles, su formato sería el siguiente:

SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.

También podemos cambiar el valor del símbolo de la moneda con:

CURRENCY SIGN IS literal , suele ser un solo carácter y no puede coincidir con ninguno
de los que usamos para definir las variables, es decir ni A, ni Z, ni 9,ni -,ni +,ni X, etc...

O hacer que todas las letras introducidas sean mayúsculas o minúsculas o que no haya
diferencias entre ambas con la cláusula ALPHABET.

Esta sección es opcional y hoy día no tiene prácticamente utilidad.

INPUT-OUTPUT SECION
Es la siguiente sección, en esta se especifican todos los archivos que serán accedidos por
el programa, aquí se especifican características las siguientes características del archivo:
el tipo, modo de acceso, así como el medio en se encuentran estos, esta sección solo
será obligatoria cuando vayamos a utilizar archivos. Esta tiene dos párrafos FILE-
CONTROL e I-O-CONTROL.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT [OPTIONAL] Nombre-de-archivo
ASSIGN TO Tipo-de-dispositivo
ORGANIZATION IS Tipo de organización
ACCESS MODE IS Mode de acceso al archivo
RECORD KEY IS Clave del registro
ALTERNATE RECORD KEY IS Claves alternativas registro
WITH DUPLICATES
FILE STATUS IS Variable de estado del fichero.

Detalles de cada una de las cláusulas de la Input-Output Section.

Cláusula SELECT

Utilizada para asignar un identificador o nombre lógico con el cual accederemos


al archivo dentro del programa, por lo regular se asigna un identificador que
describa de forma explicita el contenido del archivo, ejemplo: CLIENTES,
PRODUCTOS, etc.

Cláusula OPTIONAL

Si se emplea esta opción permitirá que el archivo es cree si no existe al ser


abierto (OPEN I-O). Con esto evitamos tener que abrirlo como OUTPUT y
cerrarlo, antes de poder utilizarlo por primera vez.

Cláusula ASSIGN

Utilizada para especificar el archivo físico (el cual podría ser un dispositivo), si es
una impresora PRINTER, si es un archivo sobre el que vamos a almacenar datos
(escribir).

Cláusula ORGANIZATION

Permite especificar la forma en que están organizados los registros dentro del
archivo, la forma de organización puede ser: SEQUENTIAL, RELATIVE o INDEXED,
por defecto se asume la organización secuencial.

SEQUENTIAL

Si los registros almacenan conforme se escriben en el archivo físico sin importar


si están o no repetidos, un ejemplo claro son los archivos de impresora, todos
los listados son secuenciales.
RELATIVE

Si cada registro es identificado por un valor entero con su posición relativa


(prácticamente no se utiliza).

INDEXED (organización más utilizada)

Identifica los archivos que sus registros se son accedidos mediante una clave
única e irrepetible o por varias que pueden estar duplicadas, es utilizado en
archivos de mantenimientos (Lectura, Escritura y Sobre Escritura), por ejemplo,
un archivo con PRODUCTOS podría ser INDEXED, y cada código será único para
cada artículo (registro), con la clave primaria permite acceder aleatoriamente a
los registros.

Cláusula ACCESS MODE

Indica el modo de acceso al archivo, los accesos pueden ser: SEQUENTIAL,


RANDOM o DYNAMIC, si no se especifica modo de acceso entonces se asume el
modo SEQUENTIAL por defecto.

RANDOM

Se emplea para acceder aleatoriamente los registros del archivo mediate la


clave o llave, este modo de acceso no permite acceder los registros del archivo
de forma secuencial.

DYNAMIC

Esta forma de acceso permite el acceso a los registros del archivo tanto de
forma RANDOM (aleatoria) como también de forma secuencial.

Cláusula RECORD KEY

Es utiliza en archivos indexado, la finalidad es especificar el nombre del campo


clave o llave por la cual se Accede a los registros. Esta deberá ser alfanumérica y
tendrá que estar contenida en la FD del archivo. Si el archivo fuera RELATIVE,
esta cláusula se sustituiría por RELATIVE KEY e indicará el número de registro del
fichero, deberá estar declarado en la WORKING-STORAGE SECTION como una
variable numérica sin signo.
Cláusula ALTERNATE RECORD KEY

Se emplea únicamente con archivos indexados, su finalidad es especificar una o


más claves alterna para los registros, por ejemplo, en un archivo de clientes
cuya clave principal sería el CODIGO, podríamos asignar como clave alterna el
NUMERO-RNC, podríamos acceder al registro por las dos claves, bien por
CODIGO o bien por NUMERO-RNC, será también alfanumérico y deberá también
estar declarado en la FD. Si colocamos WITH DUPLICATES, indicaremos que la
clave alterna permite ser duplicada, por ejemplo, si dispusiéramos como clave
alterna además del NUMERO-RNC, el NOMBRE-CLIENTE, podría darse el caso de
que dos clientes tuvieran el mismo nombre.

Cláusula FILE STATUS

Es emplea para especificar una variable, esta debe estar declarada en la


WORKING-STORAGE SECTION de la DATA DIVISION como un campo
alfanumérico de dos caracteres, dicho campo lo empleara COBOL para asignar el
código de error (en caso de ocurrir) al trabajar con un archivo, esto permite al
programador meja los errores producidos al trabar con archivos.

Ejemplo ENVIRONMENT DIVISION.


ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. RMCOBOL.
OBJECT-COMPUTER. RMCOBOL.
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CLIENTES ASSIGN TO "C:\DATOSCLIENTES.DAT"
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS CODIGO
ALTERNATE RECORD KEY IS NOMBRE-CLIENTE
FILE STATUS WS-ESTADO-ARCH-CLIENTES.

SELECT IMPRESORA ASSIGN TO PRINT "PRINTER".

También podría gustarte