Ver Mensaje Individual
  #4
Antiguo 2 de febrero de 2022, 13:15
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 02.10.2026 11:51
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

A ver, no sé de donde habrás sacado el curso pero, más vale que lo tires a la basura y empieces uno de otro lado, porque éste tiene fallos de estructura de programación así "a puñaos".

El primero que veo, es la falta de uso del punto (.) para terminar una instrucción o en su caso el uso de un END-instrucción, en éste caso END-PERFORM y END-READ, ponlos en su sitio y quizás te cambie radicalmente la estructura del programa, porque, conforme está, en apariencia funciona bien, pero es como el comunismo, que en apariencia funciona bien, pero luego ...
Si no sabes donde ponerlos, dilo y te echamos una mano, que todos hemos pasado por ahí

En tu caso la estructura para hacer el programa es de las sencillas, la secuencia normal sería:

- (01) Inicializar a 0 la variable MAXIMO-REGISTROS, (que no lo haces)
- (02) Abrir FICHERO
- (03) Posicionarse al principio, (algo que no haces, y que en éste caso no sea necesario, por ser un fichero secuencial)
- (04) Leer fichero
- (05) Comprobar si es el último registro
- (06) Sí lo es STOP RUN
- (07) No lo es
- (08) Mostrar registro leído
- (09) Sumar uno a MAXIMO-REGISTROS
- (10) MAXIMO-REGISTRO = 10
- (11) Si es SÍ
- (12) Aceptar tecla para continuar
- (13) MAXIMO-REGISTROS = 0
- (14 ) Mostrar en pantalla registro leído
- (15) Volver al punto (04)
El punto 01, hazlo siempre porque, aunque en la WORKING, le asignes el valor 0 (cero) a la variable MAXIMO-REGISTROS, hay veces que, por culpa del demonio, falla, es un simple
Código COBOL:
  1. MOVE 0 TO MAXIMO-REGISTROS.

Posicionarse al principio del fichero, en éste caso no es obligatorio, porque nada más abrir el fichero, empiezas a leerlo, por lo que el puntero, debe de apuntar al principio del fichero, y además es un fichero secuencial, lo que no entiendo es el por qué lees 2 veces el fichero, se me escapa de la lógica.

En cuanto a lo de me está rayando que "empleados-registro", no entiendo qué quieres decir con lo de "seguir tachado", en éste caso empleado-registro, no se usa, porque es por decirlo de alguna manera un contenedor de las variables que tiene por debajo, las de nivel 05, por lo que no se invoca para nada, es como si la fiche la dividieses en bloques, por ejemplo un bloque con el nombre y los apellidos, otro bloque con dirección, población CP, etc, otro bloque con varios número de teléfono, etc.
Josber is offline   Responder Con Cita