Ver la Versión Completa : [Sintaxis] Accept on exception
Paco_Diaz
16 de mayo de 2024, 10:16
Muy buenas a tod@s.
Estoy adaptando un menú hecho en rmcobol/85 a gnucobol, y que usa las teclas del cursor. La cuestión es que en RM funciona correctamente.
Ya están hechos todos los cambios para pasarlo a gnucobol, que, por lo menos, al compilar no dan error.
El último cambio que me queda para que esté completo es hacer que la parte más importante (ACCEPT variable ON EXCEPTION variable ORDEN IMPERATIVA) funcione.
No he encontrado ni un solo ejemplo de como usar ACCEPT con la opción ON EXCEPTION que es la forma que tiene el programa de controlar que tecla de flecha se pulsa, para así generar la acción correspondiente.
Agradezco desde ya, cualquier ayuda que me podáis dar al respecto.
Un saludo. Paco.
Joseg
16 de mayo de 2024, 12:41
Ver este PDF: https://sourceforge.net/p/gnucobol/code/HEAD/tree/external-doc/guide/PDFs/gnucobpg-letter.pdf?format=raw
pagina: 288
Exemplo:
perform until exit
accept line-data
on exception
display "EOF :" trim(line-data) ":" end-display
exit perform
end-accept
display line-data
end-perform
Paco_Diaz
16 de mayo de 2024, 22:01
Buenas a tod@s.
Ese código hace referencia a capturar datos de un fichero, y controlar el fin del mismo.
Yo lo necesito enfocado a aceptar una variable, y como es para un menú con las teclas del cursor, diferenciar si se pulsa flecha arriba, flecha abajo, Intro, etc.
He encontrado que el código que se obtiene al pulsar la tecla flecha arriba es 2003, y flecha abajo tiene el 2004, pero ni aun así he podido controlar la pulsación de una de esas 2 teclas, solo controlo la tecla Intro.
Sigo con ello y ya os iré diciendo.
Un saludo. Paco.
Joseg
17 de mayo de 2024, 11:26
Inserir:
SPECIAL-NAMES.
CONSOLE IS CRT
CRT STATUS IS identifier-1
Na página 288 estão todos os códigos das teclas, como já tinha referido acima.
Jose
Paco_Diaz
20 de mayo de 2024, 19:35
Buenas a tod@s
Al fin he conseguido que funcione el menu con las teclas de cursor.
He tenido que revisar un monton de informacion, tanto de libros, manuales y ejemplos, y no encontraba lo que necesitaba, hasta que lo encontré, que era poder tener en una variable el código de la tecla de cursor (o de funcion, especial, etc) pulsada.
Quien quiera saber como se hace, que me lo pregunte, y estaré encantado de decirselo. No lo pongo ahora, porque es un poco largo.
Un saludo. Paco.
Josber
20 de mayo de 2024, 21:07
Quien quiera saber como se hace, que me lo pregunte, y estaré encantado de decirselo. No lo pongo ahora, porque es un poco largo.
Nos alegramos de que lo hayas solucionado pero, aunque sea "un poco largo", deberías o poner el ejemplo, o crear un archivo con el ejemplo y subirlo, la base principal de éste foro, es compartir información, experiencias, trucos, etc., si lo pones para que la gente lo tenga sólo por privado ..., imagina que todos hiciéramos lo mismo, tendríamos la información buscada únicamente cuando la otra persona quisiera.
Espero/esperamos que compartas y te damos las gracias de antemano por ello ...
Un salu2.-
Paco_Diaz
21 de mayo de 2024, 14:21
Buenas a tod@s.
Quiza no me expresé bien cuando dije que si alguien quería saber como lo hice, estaria encantado de decirselo, pero no me refería a decirselo solo a él, sino que lo diría para todo el mundo.
La solución, básicamente para no alargarme, es preguntar por el valor de la variable COB-CRT-STATUS según los valores de cada tecla que están en el fichero SCREENIO.CPY, pero, y esto es lo más importante, esa variable no hay que declararla en ningun sitio, y ese era el error que yo cometía.
Llegué a la solución por casualidad, ya que puse sin querer un asterisco en la columna 7 donde la declaraba y, claro, no estaba declarada y funcionó.
Los valores son 2003 para flecha arriba, 2004 para flecha abajo y 2005 para ESC. En el fichero SCREENIO.CPY, están estos y otros muchos valores de teclas especiales (función, edición, etc.)
Un saludo. Paco
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.