Funcionamiento del programa de archivo - Bases de datos 3 - Capítulo 25
Curso de COBOL desde cero
En este capítulo explico el funcionamiento de todo el código del programa.
Aquí lo tienes:
IDENTIFICATION DIVISION.
PROGRAM-ID. CREATE-FILES.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT OPTIONAL EMPLEADOS-ARCHIVO
ASSIGN TO "g:\cobol\empleados.dat"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD EMPLEADOS-ARCHIVO.
01 EMPLEADOS-REGISTRO.
05 EMPLEADOS-ID PIC X(6).
05 EMPLEADOS-NOMBRE PIC X(25).
05 EMPLEADOS-APELLIDOS PIC X(35).
05 EMPLEADOS-EDAD PIC X(3).
05 EMPLEADOS-TELEFONO PIC X(9).
05 EMPLEADOS-DIRECCION PIC X(35).
WORKING-STORAGE SECTION.
01 IDENTIFICADOR PIC X(36)
VALUE "Introduce un ID del nuevo empleado: ".
01 NOMBRE PIC X(33)
VALUE "Introduce un nombre de empleado: ".
01 APELLIDOS PIC X(25)
VALUE "Introduce los apellidos: ".
01 EDAD PIC X(19)
VALUE "Introduce la edad: ".
01 TELEFONO PIC X(33)
VALUE "Introduce un número de teléfono: ".
01 DIRECCION PIC X(25)
VALUE "Introduce una dirección: ".
01 SI-NO PIC X.
01 ENTRADA PIC X.
PROCEDURE DIVISION.
MAIN-LOGIC SECTION.
PROGRAM-BEGIN.
PERFORM PROCEDIMIENTO-DE-APERTURA.
MOVE "S" TO SI-NO.
PERFORM AGREGAR-REGISTROS
UNTIL SI-NO = "N".
PERFORM PROCEDIMIENTO-DE-CIERRE.
PROGRAM-DONE.
STOP RUN.
PROCEDIMIENTO-DE-APERTURA.
OPEN EXTEND EMPLEADOS-ARCHIVO.
PROCEDIMIENTO-DE-CIERRE.
CLOSE EMPLEADOS-ARCHIVO.
AGREGAR-REGISTROS.
MOVE "N" TO ENTRADA.
PERFORM OBTENER-CAMPOS
UNTIL ENTRADA = "S".
PERFORM ESCRIBIR-REGISTRO.
PERFORM REINICIAR.
OBTENER-CAMPOS.
MOVE SPACE TO EMPLEADOS-REGISTRO.
DISPLAY IDENTIFICADOR " ? ".
ACCEPT EMPLEADOS-ID.
DISPLAY NOMBRE " ? ".
ACCEPT EMPLEADOS-NOMBRE.
DISPLAY APELLIDOS " ? ".
ACCEPT EMPLEADOS-APELLIDOS.
DISPLAY EDAD " ? ".
ACCEPT EMPLEADOS-EDAD.
DISPLAY TELEFONO "?".
ACCEPT EMPLEADOS-TELEFONO
DISPLAY DIRECCION.
ACCEPT EMPLEADOS-DIRECCION.
PERFORM CONTINUAR.
CONTINUAR.
MOVE "S" TO ENTRADA.
IF EMPLEADOS-NOMBRE = SPACE
MOVE "N" TO ENTRADA.
ESCRIBIR-REGISTRO.
WRITE EMPLEADOS-REGISTRO.
REINICIAR.
DISPLAY "¿Desea almacenar otro registro en la base de datos?".
ACCEPT SI-NO.
IF SI-NO = "s"
MOVE "S" TO SI-NO.
IF SI-NO NOT = "S"
MOVE "N" TO SI-NO.
END PROGRAM CREATE-FILES.
Veamos un poco como funciona. Puedes verlo en detalle y en ejecución en el vídeo de arriba.
Empecemos con la sección FILE CONTROL. En ella, ya he explicado, que se vincula con un SELECT el archivo lógico, en este caso EMPLEADOS-ARCHIVO.
Estos datos lógicos son almacenados en un archivo físico gracias al ASSIGN. Si ejecutamos el programa, si el archivo no está creado, lo crea.
Pasemos a la DATA DIVISION.
En la FILE SECTION se escribe el archivo lógico con su registro y este con sus campos.
Hasta aquí, seguramente, ya más o menos lo sabías por los capítulos anteriores.
En la WORKING-STORAGE SECTION añadimos las variables que harán funcionar este programa.
SI-NO y ENTRADA son las variables que almacenan el caracter s o n para decidir si añadimos otro registro más o no.
No voy explicar el funcionamiento de cada PERFORM, porque con lo que ya sabes puedes revisarlo con calma y saber lo que hace cada uno.
Además, cómo práctica, podrías intentar cambiar a algo más simple el mecanismo de introducir una s o una n para continuar. Creo que en algún capítulo anterior vimos otra forma más sencilla de hacerlo.
Si decidimos agregar un registro, pasamos al procedimiento AGREAGAR-REGISTROS el cual se encarga de hacer eso mismo.
A partir de aquí irá preguntando en consola los diferentes datos, NOMBRE, APELLIDOS, etc.
Después de obtener todos los campos el programa nos va a preguntar si queremos añadir otro registro más o no. Esto se decide en el procedimiento CONTINUAR.
Independientemente de si la respuesta es S o N, va a escribir los cambios en el registro con el WRITE.
Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.
Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.
No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.
Comentarios
Si te quedan dudas sobre el temario, sobre COBOL, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.
IDE para COBOL en este curso
OpenCobolIDE
Te presento OpenCobolIDE, un IDE gratuito y de código abierto para programar en COBOL. Además es multiplataforma.
El único problema que le podemos encontrar es que se ha dejado de actualizar desde el año 2016, pero por el momento funciona perfecto.
Puedes contactarme para peticiones comerciales y proyectos a mi correo electrónico.
Para dudas sobre el sitio web o sobre alguno de los cursos, puedes dejarme comentarios en la página correspondiente a la duda o en mi canal de YouTube.