Cobol en español
  Página de Inicio Recomiéndala Contáctame Usuarios en Linea
12
     Crea Una cuenta  
Video 1
Video 2
Video 3

Si te ha servido la web
o te han gustado los videos, colabora haciendo click en el botón.

MANUALES
TEMATICOS
BASES DE DATOS
COBOL / WINDOWS
COBOL / UNIX
HISTORIA /DOCS
 
BUSCADOR
PROGRAMANDO-Dos
TRUCOS
AÑO 2.000
TEORIA POWCOB-3
PROG. POWCOB-3
TEORIA POWCOB-5
PROG. POWCOB-5
OCX-ESCOBOL
RUTINAS/MANUALES
OCX / JUEGOS
HERRAMIENTAS
COMPILADORES
ENCUESTAS
ENLACES
FOROS
TOP 10

CHAT   Usuarios: 0
Temáticos
TEMARIOCódigos de Error
Ventanas
Palabras Reservadas
Clasificando (Sort)
Tablas
Ficheros (I)
Ficheros (II)
Ficheros (III)

Ficheros (III)

página(s) : 1/2
(1089 palabras totales en este texto)
(27161 Lecturas)   Versión Imprimible



Que Cobol tiene muchas cosas buenas, no hace falta decirlo, pero su facilidad para trabajar con datos y por lo tanto con ficheros, es sencillamente increible.
Increible hasta el punto que podemos trabajar con un fichero, antes incluso de saber como se llama y donde se encuentra.

Lo mas lógico y mas utilizado es asignar previamente una localización y nombre para nuestro fichero en la SELECT, por ejemplo:
    SELECT VENTAS ASSIGN TO RANDOM "VENTAS.DAT"
    ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY CLA-VENTAS
    FILE STATUS STA-VENTAS.

    SELECT COMPRAS ASSIGN TO RANDOM "C:DATOSCOMPRAS.DAT"
    ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY CLA-VENTAS
    FILE STATUS STA-VENTAS.
Ya sabéis que la extensión de nuestros ficheros es indiferente para Cobol, pero siempre nos ayudará a nosotros mismos a distinguir los archivos de datos de otro tipo de archivos.
Por eso generalmente se les suele poner la extensión .DAT.

Bien, ambas formas son correctas para designar los ficheros con los que vamos a trabajar en nuestra aplicación. Pero, ¿ que pasa si el nombre dependiera de alguna condición o debiera cumplir alguna regla ?.

En estos casos solo tendremos que asignar el fichero a una variable que definiremos en la WORKING-STORAGE SECTION. A esa variable le podremos dar los varlores que queramos para conformar nuestro nombre. Por supuesto, antes de abrir el fichero, esa variable debe de contener alguna información, de lo contrario nos daría error, simplemente porque no podría abrir un fichero sin nombre.

Para ver un ejemplo, os voy a explicar como trabajo yo personalmente. En mi empresa cada cambio de campaña (año de trabajo) los datos se copian y se empieza todo desde 0. A los ficheros les cambio el nombre, de tal forma que para las ventas, por ejemplo, tengo varios archivos que se llaman:
  • ventas.dat (actual)
  • vent0102.dat (campaña 2001/2002)
  • vent0001.dat (campaña 2000/2001)
  • vent9900.dat (campaña 1999/2000)
  • ... y asi sucesivamente, todos los años que tenga.
Por lo tanto el programa que utilizo es el mismo al igual que la SELECT y la FD, porque en realidad solo utilizo un fichero lógico, pero con varios ficheros físicos. Os explico una tarea común en cualquier programa que trabaje con varios ficheros.
Primero defino la SELECT para dicho fichero:
    SELECT VENTAS ASSIGN TO RANDOM FILVEN
    ORGANIZATION INDEXED ACCESS DYNAMIC RECORD KEY KEYVEN
    ALTERNATE RECORD KEYVEN1 FILE STATUS STAVEN.
Como veis ahora no hay un nombre fijo asignado, sino que la referencia se hace a una variable llamada FILVEN. Para guardar los nombres de los distintos ficheros utilizo una tabla. Lo siguiente es definirlo todo en la WORKING:
    ...
    WORKING-STORAGE SECTION.
    01 FILVEN PIC X(20).
    01 CUAL PIC 9 VALUE 1.
    ...
    01 TABLAVENTAS.
      02 FILLER PIC X(20) VALUE "ventas.dat"
      02 FILLER PIC X(20) VALUE "vent0102.dat"
      02 FILLER PIC X(20) VALUE "vent0001.dat"
      02 FILLER PIC X(20) VALUE "vent9900.dat"
    01 RETABLAVENTAS REDEFINES TABLAVENTAS.
      02 ELFICHERO PIC X(20) OCCURS 4 TIMES.
    ...
Siempre, cuando empiezo directamente asigno el primer elemento de la tabla, que se supone que es el fichero actual con el que estoy trabajando, por lo tanto hago lo siguiente:

    ...
    PROCEDURE DIVISION.
    INICIO.
      MOVE ELFICHERO (CUAL) TO FILVEN.
      OPEN INPUT VENTAS.
      ...
A partir de aqui realizo el programa normalmente, pero tengo una opción para seleccionar campaña, en la cual llamo a una rutina que me muestra los elementos de la tabla, cuando el usuario seleccione alguna yo cambio el valor de la variable CUAL y vuelvo el control del programa al párrafo INICIO, con lo cual, me tomará el valor que le haya asignado en la elección.
Es una manera de hacerlo, a mi me va muy bien.

Pero la idea era que comprendiérais como se pueden asignar diferentes nombres de fichero dentro de un programa.

A continuación veremos como pasar los datos de un fichero indexado a uno secuencial y generar un fichero de texto para exportarlo a Excel.

   Inicio de Página    | Siguiente (2/2)
Sitio desarrollado con PHP-Nuke. Todos los Derechos Reservados.
PHP-Nuke es un Software Libre realizado con licencia GNU/GPL.
Página creada en Junio de 1.998, con el proposito de difundir el lenguaje Cobol en nuestra lengua.
Andres Montes [98/11]