Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Visual COBOL y DEV-HUB (https://www.cobolforo.es/forumdisplay.php?f=36)
-   -   [Compilador] Problemas con ASCII extendido (https://www.cobolforo.es/showthread.php?t=228)

Fernandofc 6 de septiembre de 2015 09:23

Problemas con ASCII extendido
 
Hola a todos;

Después de muchos años sin programar en cobol, he decidido volver a retomarlo, el caso es que he instalado la versión gratuita de Visual Cobol.

El problema que se me plantea es a la hora de visualizar un caracter del modo ASCII extendido .. por ejemplo alt+179, no me sale el carácter de raya vertical al que corresponde.

Me imagino que necesito configurar esto en algún lado del compilador, alguien me podría indicar como resolver esto?

gracias

Kuk 6 de septiembre de 2015 12:56

Fernandofc, dónde quieres visualizar dicho caracter y no te sale, en el editor o en la pantalla de consola?

Fernandofc 6 de septiembre de 2015 18:03

Es a la hora de ejecutarlo en modo consola.

Lo que quería era diseñar cuadros para decorar un poco las ventanas en modo consola.

Kuk 6 de septiembre de 2015 20:17

Fernandofc, ponnos un pantallazo para que veamos qué es lo que aparece en lugar del caracter que queires. Y también dinos cómo haces para mover el caracter especial al campo.

Fernandofc 6 de septiembre de 2015 23:50

Diseño en la screen section un cuadro, solo pongo la parte de arriba para simplificar, la línea la hago con alt+191
Código COBOL:
  1.  
  2. screen section.
  3.        
  4.        01  Pantalla-inicial.
  5.            03  line 1 col 20   pic x value  "──────".
  6.            
  7.            
  8.        
  9.        procedure division.
  10.        
  11.        Main.
  12.            
  13.                      
  14.                display Pantalla-inicial
  15.                stop ' '
  16.          
  17.  

cuando compilo y ejecuto el programa en vez de una línea me el caracter ô

Kuk 7 de septiembre de 2015 09:23

Fernandofc, en este código yo no veo dónde mueves el alt+191... No sé si lo harás así, pero la manera de hacerlo es la siguiente:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  WS-BIN             PIC S9(9) COMP-5. *> OCUPA 2 BYTES
  3.  01  FILLER REDEFINES WS-BIN.
  4.      05  FILLER         PIC X.
  5.      05  WS-ASCII       PIC X. *> AQUÍ QUEDARÍA EL CARACTER
  6.      
  7.  PROCEDURE DIVISION.
  8.      
  9.      MOVE H"191" TO WS-BIN
  10.      
  11.      MOVE WS-ASCII TO ...

Puedes hacer una rutina a partir de este código, la cual te devuelve el caracter especial por LINKAGE.

Josber 7 de septiembre de 2015 11:05

No Kuk no lo mueve, en vez de hacerlo moviendolo como tú, lo hace asignándolo directamente con la instrucción "value".

Un saludo.-

Kuk 7 de septiembre de 2015 13:24

Josber, puede ser. Pero si lo hace copiando y pegando el valor "raro", posiblemente sea fallo de conversión, dependiendo de la fuente y la codificación que tenga definidas en el editor.
Lo que él quiere, si se hace en la WORKING, se debe asignar sea vía HEX (en este caso 191 = X"BF"), es decir:

Código COBOL:
  1.  01   WS-BARRA-V            PIC X VALUE X"BF".

O si no quieres convertir a mano los valores a HEX, con la rutina que le he pasado. El pegado directo en caso de juego de caracteres fuera del estándar suele dar resultado incorrecto. Porque el mismo carácter visual tiene códigos distintos en diferentes codificaciones y fuentes.

Fernandofc 7 de septiembre de 2015 21:26

Efectivamente lo hago en la screen section copiando y pegando el valor, pero no me corresponde con el de la tabla, por eso decía que podía ser que tengo el visual estudio mal configurado.

Trataré de mirar donde se puede arreglar esto...

y si no trataré de hacerlo como me dices tu Kuk

gracias

Kuk 25 de noviembre de 2016 13:17

Fernandofc, dinos cómo has solucionado finalmente tu problema y en qué consistía, si lo has descubierto.


La franja horaria es GMT +2. Ahora son las 13:06.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.