Environment Division
página(s) : 1/2 (1905 palabras totales en este texto) (161315 Lecturas) 
Es la segunda division por orden de aparición, y en ella se especifican, el ordenador donde se escribió y se ejecutará el programa, asi como la relacion entre los
ficheros a utilizar con sus correspondencias externas, es decir con los dispositivos a los que hará referencia el programa objeto cuando vaya a establecer
comunicación con dicho fichero.
Diremos antes de continuar que en los primeros cobol había muchas partes que eran obligatorias en cada programa, pero hoy en dia, por ejemplo, ésta división
ya no es obligatoria, asi como ninguna de sus partes. Su sintaxis sería la siguiente:
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. Ordenador donde se escribió el fuente.
OBJECT-COMPUTER. Ordenador donde se ejecuta el objeto.
SPECIAL-NAMES. Cambiar valores para constantes del lenguaje, pueden variar en cada compilador.
Como se aprecia en su sintaxis, ésta segunda division se divide a su vez en dos secciones, que se describen a continuacion:
CONFIGURATION SECTION: Donde describimos los tipos de ordenadores en que se escribio y se ejecutará el programa, o bien el nombre
del compilador y asignación de valores a ciertas constantes utilizadas por el compilador, estos valores se introducen en sus respectivas lineas como
se ve arriba.
Para la linea de SPECIAL-NAMES el uso mas habitual es el de cambiar el punto decimal usado por los ingleses por la coma y asi poder
especificar los puntos para los miles, su formato sería el siguiente:
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
También podriamos cambiar el valor del símbolo de la moneda con:
CURRENCY SIGN IS literal , suele ser un solo caracter 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 clausula
ALPHABET.
INPUT-OUTPUT SECION: Es la siguiente sección dentro de la Environment, donde se especificarán todos los ficheros que vamos a
utilizar, su tipo, su modo de acceso asi como el medio en que estarán, esta sección solo será obligatoria cuando vayamos a utilizar
ficheros. Esta tiene dos párrafos FILE-CONTROL e I-O-CONTROL.
123456789012
A B
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT [OPTIONAL] Nombre-de-archivo
ASSIGN TO Tipo-de-dispositivo
ORGANIZATION IS Tipo de organizacion
ACCESS MODE IS Mode de acceso al fichero
RECORD KEY IS Clave del registro
ALTERNATE RECORD KEY IS Claves alternativas registro
WITH DUPLICATES
FILE STATUS IS Variable de estado del fichero.
Vamos a explicar cada una de las cláusulas que encontramos dentro de la Input-Output Section.
Cláusula SELECT es aqui donde especificamos el nombre lógico que va a tener el fichero
dentro del programa, suele ser una palabra que identifique lo mas claro posible el contenido del fichero,
por ejemplo ARTICULOS, PROVEEDORES, CLIENTES.
Cláusula OPTIONAL si indicamos esta opción al hacer un OPEN I-O, si el archivo no existe, se crea. Con lo cual nos evitamos tener que abrirlo como OUTPUT y cerrarlo, antes de poder utilizarlo por primera vez.
Cláusula ASSIGN aqui especificamos el tipo de dispositivo, si es una impresora PRINTER,
si es un fichero sobre el que vamos a grabar RANDOM o DISC,
se pueden utilizar otros como INPUT, INPUT-OUTPUT, CASSETTE, MAGNETIC-TAPE,
pero sin duda los mas utilizados son los dos primeros para identificar si el fichero utilizará una salida impresa
o se utilizará sobre disco. Para identificar ficheros utilizados para clasificar utilizaremos SORT.
Cláusula ORGANIZATION aqui indicamos la organización de los registros de nuestro fichero,
podrá ser SEQUENTIAL, RELATIVE o INDEXED, si nuestro archivo fuera secuencial se podrían omitir ésta clausula asi como
las restantes. De ésta organización se deriva el formato del fichero, SEQUENTIAL si los registros se graban
secuencialmente conforme se dan entrada 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
(practicamente no se utiliza).
INDEXED es la mas utilizada e identifica a ficheros que sus registros son accesibles mediante una clave unica e irrepetible o por varias
que pueden estar duplicadas, cualquier fichero de mantenimiento, por ejemplo de ARTICULOS, podría ser INDEXED, y cada código será
único para cada artículo y con el nos iremos a su posición y podremos ver todos los demas datos que hagan referencia al registro.
Existe también para los archivos de texto, tipo AUTOEXEC.BAT la posibilidad de asignarlos directamente especificando
LINE SEQUENTIAL en ésta clausula.
|