Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol GnuCOBOL (OpenCOBOL)
GnuCOBOL (OpenCOBOL) El compilador gratuito y Open Source cada vez más popular.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Compilador] ACCEPT sin rellenar la variable entera Kuk NetCOBOL 2 28 de junio de 2016 08:26
[Sintaxis] Como descifrar valores de COM-EXCEPTION Kuk PowerCOBOL y COM/OLE 5 20 de abril de 2015 18:36

Respuesta

  #1
Antiguo 16 de mayo de 2024, 10:16
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14
Predeterminado Accept on exception
0 Inactivo Inactivo

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.
Paco_Diaz is offline   Responder Con Cita
  #2
Antiguo 16 de mayo de 2024, 12:41
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Ver este PDF: https://sourceforge.net/p/gnucobol/c...pdf?format=raw
pagina: 288

Exemplo:
Código COBOL:
  1. perform until exit
  2.            accept line-data
  3.                on exception
  4.                    display "EOF :" trim(line-data) ":" end-display
  5.                    exit perform
  6.            end-accept
  7.            display line-data
  8. end-perform
Joseg is offline   Responder Con Cita
  #3
Antiguo 16 de mayo de 2024, 22:01
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14

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.
Paco_Diaz is offline   Responder Con Cita
  #4
Antiguo 17 de mayo de 2024, 11:26
Joseg
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras en varias ocasiones 
Última Actividad 17.09.2026 18:23
Posts Posts: 401
Likes enviados Enviados: 130
Likes recibidos Recibidos: 179

Inserir:

Código COBOL:
  1. SPECIAL-NAMES.
  2.   CONSOLE IS CRT
  3.  CRT STATUS IS identifier-1


Na página 288 estão todos os códigos das teclas, como já tinha referido acima.

Jose
Joseg is offline   Responder Con Cita
  #5
Antiguo 20 de mayo de 2024, 19:35
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14

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.
Paco_Diaz is offline   Responder Con Cita
  #6
Antiguo 20 de mayo de 2024, 21:07
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 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Citación del post de Paco_Diaz Ver Mensaje

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.-
Josber is offline   Responder Con Cita
  #7
Antiguo 21 de mayo de 2024, 14:21
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14

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
Paco_Diaz is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:53.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.