Ver la Versión Completa : [Compilador] Problemas con ASCII extendido
Fernandofc
6 de septiembre de 2015, 09:23
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
screen section.
01 Pantalla-inicial.
03 line 1 col 20 pic x value "──────".
procedure division.
Main.
display Pantalla-inicial
stop ' '
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:
WORKING-STORAGE SECTION.
01 WS-BIN PIC S9(9) COMP-5. *> OCUPA 2 BYTES
01 FILLER REDEFINES WS-BIN.
05 FILLER PIC X.
05 WS-ASCII PIC X. *> AQUÍ QUEDARÍA EL CARACTER
PROCEDURE DIVISION.
MOVE H"191" TO WS-BIN
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:
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.
Gusaiello
25 de noviembre de 2016, 19:02
Espero no estar diciendo una burrada, pero me parece que el problema radica en que Windows usa la tabla ANSI en lugar de la ASCII y por eso los caracteres de la parte extendida de la tabla ASCII no coinciden.
Esto mismo bajo DOS funciona perfectamente, tanto en pantalla como en impresora.
Kuk
25 de noviembre de 2016, 22:27
Gusaiello, si no me equivoco, el Windows en sí a partir de Windows 7 todos son Unicode.
vBulletin v3.8.7, Derechos ©2000-2026, Jelsoft Enterprises Ltd.