Developer's Diary

4 octubre, 2010

Curso de EasyTrieve VI Manejo de archivos.

Filed under: Cobol / Jcl / Easytrieve, Programación — jnavero @ 10:59 PM

—- Nos mudamos: http://devthisblog.namocode.es
—————————————————————–
En este capítulo veremos cómo manejar los ficheros así como las formas de leer y escribir en un fichero. Comencemos con este nuevo escrito.

Antes de comenzar, como cualquier jcl o programa en cobol, para poder manejar cualquier fichero, debemos definirlo en el paso del JCL previo al easytrieve.

Supongamos el siguiente paso:

//*********************************************************************

//*EASYTRIEVE                                                         *

//*********************************************************************

//EASY1     EXEC PGM=EZTPA00

//STEPLIB  DD DISP=SHR,DSN=RAIZ.LIBRERIAS

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//SYSOUT   DD SYSOUT=*

//SYSDGRPT DD SYSOUT=*

//ENTRADA  DD DSN=FICHERO.EJEMPLO.ENTRADA,

//            DISP=SHR

//SALIDA   DD DSN=FICHERO.EJEMPLO.SALIDA,

//            DISP=(NEW,CATLG,CATLG),

//            SPACE=(30,(10,5),RLSE),

//            DCB=(LRECL=30,RECFM=FB,BLKSIZE=0,DSORG=PS)

//SYSIN    DD *

//********************* Aquí va nuestro easy…

En el paso que hemos visto hacemos referencia a dos ficheros uno de entrada y otro de salida, este ultimo lo estamos catalogando siempre, esto depende de las necesidades del usuario.

Una vez definidos los archivos en el paso del JCL debemos definirlos en nuestro EasyTrieve. Podemos definirlo de diferentes formas, siempre con la palabra reservada FILE. A continuación vemos una de ellas.

Supongamos que nuestro fichero de entrada tiene el código del cliente que ocupa 5 caracteres, teléfono que ocupa 9 y nombre de 10 caracteres (por poner algo). En total 24 caracteres. Nuestro fichero tendría la siguiente forma:

XXXXXYYYYYYYYYZZZZZZZZZZ

Una forma de declararlo sería la siguiente:

FILE ENTRADA

E1-CODIGO         1     5  A

E1-TELEFONO       6     9  A

E1-NOMBRE        15    10  A

FILE SALIDA

FS-SALIDA         1  30  A

En este ejemplo, declaramos el fichero de entrada indicando cada campo, así como las posiciones y el tamaño que ocupan. Sin embargo el fichero de salida lo declaramos como un bloque de 30 caracteres y podemos realizar una redefinición posteriormente que luego podemos asignar a FS-SALIDA.

Otra forma de declarar el fichero de entrada es con asteriscos. De la siguiente manera:

FILE ENTRADA

E1-CODIGO         1     5  A

E1-TELEFONO       *     9  A

E1-NOMBRE         *    10  A

El asterisco funciona de la misma, indicando la posición de memoria siguiente por parte es más cómodo de utilizar.

Una vez definido los archivos, podemos obstar por realizar las lecturas de forma manual o automática todo depende de nuestras necesidades. Si deseamos que nuestro EasyTrieve tome el control de la lectura del archivo de entrada. Debemos poner el inicio del job de la siguiente forma (seguiremos con los ficheros definidos anteriormente)

*————————————————-

* Ejemplo EasyTrieve con ficheros

*————————————————-

JOB INPUT ENTRADA

DISPLAY ‘Nombre: ‘ E1-NOMBRE

DISPLAY ‘Tlf: ‘ E1-TELEFONO

STOP

En este ejemplo se mostrará únicamente el primer registro ya que cuando llega al stop el Easy se detiene. Si deseamos que llegue hasta final de fichero, debemos quitar el stop y veremos cómo recorre todo el fichero hasta el final.

Por último viendo esta forma, podemos desear que cuando finalice de leer el fichero realice algún tipo de acción, para ello debemos colocar la orden FINISH después del archivo de entrada, seguido del párrafo que deseemos llamar

JOB INPUT ENTRADA FINISH RESUMEN

En este ejemplo llamará al párrafo resumen cuando finalice de leer el fichero de entrada.

Si deseamos realizar un manejo manual de los ficheros. Debemos utilizar varios comandos que son los siguientes:

PUT sirve para escribir el registro de salida, si a PUT le añadimos FROM podemos escribir un registro a la salida directamente desde una entrada.

GET Lee el archivo de entrada

EOF indica si es el final de fichero.

Con esto veamos un ejemplo sencillo de lectura y escritura de ficheros.

*————————————————-

* Ejemplo EasyTrieve con ficheros

*————————————————-

JOB INPUT NULL

GET ENTRADA

DO WHILE EOF ENTRADA

DISPLAY ‘Nombre: ‘ E1-NOMBRE

DISPLAY ‘Tlf: ‘ E1-TELEFONO

PUT SALIDA FROM ENTRADA

GET ENTRADA

END-DO

STOP

Por supuesto, siempre podemos asignar las variables al registro de salida y solamente hacer un PUT SALIDA basta para escribir en el registro de salida.

De momento hoy hasta aquí, en la siguiente entrega seguiremos viendo mas sobre ficheros, así como las funciones que me he olvidado de ellas por completo y algunas funciones especificas de Easytrieves.

Anuncios

1 comentario »

  1. Para hacer un correcto recorrido por el fichero hay que poner el DO WHILE así:
    DO WHILE NOT EOF ENTRADA
    lo que significa: Repetir Mientras NO Fin De Fichero ‘ENTRADA’

    Saludos

    Comentario por Nuha — 22 noviembre, 2010 @ 11:06 AM


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: