Ver Mensaje Individual
  #4
Antiguo 1 de diciembre de 2021, 16:47
DestinedBroken
Forero Junior
Última Actividad 16.02.2022 11:57
Posts Posts: 28
Likes enviados Enviados: 16
Likes recibidos Recibidos: 4

@Fito, Esta es una de las cosas que me he dado cuenta. Gracias compañero.

@Kuk, Paso a poner mi código mejorado. He quitado muchas cosas que no tenían sentido. Como rutinas de solo una línea de código. El trozo de código del if-else también lo he cambiado. Creo que ahora está mejor.

El problema está resuelto, pero no funciona cuando quiero meter más personas en la base de datos. Me explico:


Código COBOL:
  1.        program-id. create-files as "primero bases de datos".
  2.  
  3.        environment division.
  4.        configuration section.
  5.        input-output section.
  6.  
  7.        file-control.
  8.        select optional empleados-archivo
  9.            assign to "f:\empleados_escritura.dat"
  10.            organization is line sequential.
  11.  
  12.        data division.
  13.        file section.
  14.        fd empleados-archivo.
  15.      *label etiqueta-antigua-para-cintas.
  16.        01 empleados-registro.
  17.          05 empleados-id pic x(6).
  18.          05 empleados-nombre pic x(25).
  19.          05 empleados-apellidos pic x(35).
  20.          05 empleados-edad pic x(3).
  21.          05 empleados-telefono pic x(9).
  22.          05 empleados-direccion pic x(35).
  23.  
  24.        working-storage section.
  25.        01 identificador pic x(36) value
  26.       -"Introduce un ID del nuevo empleado: ".
  27.        01 nombre pic x(33) value "Introduce un nombre de empleado:".
  28.        01 apellidos pic x(25) value "Introduce los apellidos:".
  29.        01 edad pic x(19) value "Introduce la edad:".
  30.        01 telefono pic x(33) value "Introduce un numero de telefono:".
  31.        01 direccion pic x(25) value "Introduce una direccion:".
  32.  
  33.        01 si-no pic x.
  34.        01 entrada pic x.
  35.  
  36.        procedure division.
  37.  
  38.        program-begin.
  39.            open extend empleados-archivo
  40.      *    move "s" to si-no
  41.            perform agregar-registros until si-no = "n"
  42.            close empleados-archivo
  43.            stop run
  44.  
  45.            .
  46.        agregar-registros.
  47.      *    move "n" to si-no
  48.            perform obtener-campos until entrada = "s"
  49.            write empleados-registro
  50.            perform reiniciar
  51.            .
  52.  
  53.        obtener-campos.
  54.            move space to empleados-registro
  55.            display identificador
  56.            accept empleados-id
  57.            display nombre
  58.            accept empleados-nombre
  59.            display apellidos
  60.            accept empleados-apellidos
  61.            display edad
  62.            accept empleados-edad
  63.            display telefono
  64.            accept empleados-telefono
  65.            display direccion
  66.            accept empleados-direccion
  67.            perform continuar
  68.  
  69.            .
  70.  
  71.        continuar.
  72.            move "s" to entrada
  73.            if empleados-nombre = space
  74.                display
  75.                "ERROR: No ha introducido un nombre para el empleado,"
  76.       -       "vuelva a intentarlo"
  77.  
  78.                move "n" to entrada
  79.            end-if
  80.            .
  81.  
  82.        reiniciar.
  83.            display "Almacenar otro registro en la base de datos (s/n)??"
  84.            accept si-no
  85.            if si-no = "s"
  86.                move "s" to si-no
  87.  
  88.            else
  89.                move "n" to si-no
  90.            end-if
  91.  
  92.            .
  93.  
  94.        end program create-files.
DestinedBroken is offline   Responder Con Cita