Citación del post de
DestinedBroken
|
❞
Lo siguiente es que me baneen
|
Banearte por eso no pero, que el que ha hecho el curso, se merece una buena mano de bofetadas....
A ver, el END-READ, has de ponerlo, no para que termine de leer, si no, para indicarle que termine de hacer cosas, es como el END-IF, (o el punto en su caso), si no lo pones, el compilador puede presuponer que no se han terminado de hacer cosas y añadirlas en AT END, por ejemplo,
No es lo mismo
Código COBOL:
READ fichero
NEXT RECORD
AT END
MOVE 0 TO FIN-FICHERO
NOT AT END
PERFORM MOSTRAR
ADD 20 TO CONTADOR
PERFORM COMPROBAR
que
Código COBOL:
READ fichero
NEXT RECORD
AT END
MOVE 0 TO FIN-FICHERO
NOT AT END
PERFORM MOSTRAR
END-READ
ADD 20 TO CONTADOR
PERFORM COMPROBAR
o el equivalente sin el END-READ, pero con sus correspondientes puntos (.) de fin de sentencia
Código COBOL:
READ fichero
NEXT RECORD
AT END
MOVE 0 TO FIN-FICHERO
NOT AT END
PERFORM MOSTRAR.
ADD 20 TO CONTADOR.
PERFORM COMPROBAR.
En el primer caso, suma 20 a CONTADOR y va al párrafo COMPROBAR, mientras haya registros en el fichero, puesto que no encuentra nada que le diga que ha terminado el bloque de instrucciones en el READ, y en el segundo caso, sólo lo hace cuando haya termina de leer el fichero.
Los puntos y las sentencias END-...., no son obligatorias, pero si son muy esclarecedoras, para los que nos enseñamos COBOL, con la versión del 74, el poder usar un simple END-IF, END-READ o END-
algo, fue uno de los mayores hitos en la programación con este lenguaje, si te descargas el manual que hice sobre POWER-COBOL, verás que, en todos los ejemplos que hay, y hay un buen montón, uso siempre las sentencias END, los puntos de fin de instrucción y la INDETANCIÓN, es algo a lo que me he acostumbrado y, ya no sé hacerlo de otra forma.
Un salu2.-