Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Cocina Casera Cocina RM/COBOL
Cocina RM/COBOL Rutinas y ejemplos RM/COBOL codificados por nuestros foreros.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Error linea abrir archivo JonathanDemons_123 COBOL - General 1 29 de enero de 2024 20:04
[Sintaxis] Cargar un combo en linea Breew PowerCOBOL (ActiveX, v4 - v11) 3 19 de febrero de 2021 07:51
[Componente] TextBox Multilinea y saltos de línea Begoguay PowerCOBOL (ActiveX, v4 - v11) 3 6 de febrero de 2017 20:55
[Sintaxis] Leer archivo texto con codificacion UTF-8 Recato53 PowerCOBOL (ActiveX, v4 - v11) 1 18 de abril de 2016 10:47
[PowerCOBOL v3] Selección de línea en Table control Kuk Cocina PowerCOBOL 1 19 de diciembre de 2015 21:39

Respuesta
 
Herramientas

  #1
Antiguo 9 de noviembre de 2022, 13:47
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14
Predeterminado Texto centrado con recuadro simple en linea 23
0 Inactivo Inactivo

Buenas.

Después de haber dado la vara con colores, editores de pantalla y demás, he conseguido hacer una utilidad, que creo que es bastante interesante para cuando alguien quiera sacar un texto centrado en la fila 23 (o la que se quiera retocando el código) rodeado por un cuadro simple (o doble también retocando el código), y quiero compartirla.

La he realizado en rm/cobol-85, compilada y ejecutada en un sobremesa con windows xp en modo texto, pero supongo que se podrá adaptar a otros entornos.

He intentado documentarla con comentarios, explicando qué hace cada cosa en cada momento, incluyendo una ayuda visual en forma de regla en la fila 25 para comprobar que todo funciona correctamente, y que se puede desactivar.

Como ayuda alternativa, he creado un sistema de variables con combinaciones de colores, que, por sus nombres, ayudan a la hora de programar, y que se pueden usar en otros programas (las combinaciones me han hecho aprender bastante sobre qué colores se pueden usar, y cuales son las restricciones.

Es un subprograma que he llamado mensaje.cbl, y que para llamarla se hace desde cualquier punto de un programa se hace de la siguiente manera:

Se define una variable que se llama mensaje pic x(55)

Se le asigna como contenido el texto que queremos displayar en la fila 23 (procurar no escribir 2 espacios en blanco consecutivos, porque de lo contrario, no funcionará correctamente

Se le llama con CALL "MENSAJE" USING MENSAJE

Y voilá

Este es el código:

Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. MENSAJE.
  3.        ENVIRONMENT DIVISION.
  4.        CONFIGURATION SECTION.
  5.        DATA DIVISION.
  6.        WORKING-STORAGE SECTION.
  7.  
  8.       ******** Colores
  9.  
  10.       ****** Amarillo sobre Azul
  11.        01   COL-AMA-AZU.
  12.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=BLUE".
  13.  
  14.       ****** Amarillo sobre Gris
  15.        01   COL-AMA-BLA.
  16.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=WHITE".
  17.  
  18.       ****** Amarillo sobre Cyan
  19.        01   COL-AMA-CYA.
  20.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=CYAN".
  21.  
  22.       ****** Amarillo sobre Gris
  23.        01   COL-AMA-GRI.
  24.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=WHITE".
  25.  
  26.       ****** Amarillo sobre Magenta
  27.        01   COL-AMA-MAG.
  28.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=MAGENTA".
  29.  
  30.       ****** Amarillo sobre Negro
  31.        01   COL-AMA-NEG.
  32.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=BLACK LOW".
  33.  
  34.       ****** Amarillo sobre Rojo
  35.        01   COL-AMA-ROJ.
  36.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=RED".
  37.  
  38.       ****** Amarillo sobre Verde
  39.        01   COL-AMA-VER.
  40.             02 pic x(40) value "FCOLOR=BROWN, BCOLOR=GREEN".
  41.  
  42.       ****** Azul sobre Azul
  43.        01   COL-AZU-AZU.
  44.             02 pic x(40) value "FCOLOR=BLUE, BCOLOR=BLUE".
  45.  
  46.       ****** Azul sobre Blanco
  47.        01   COL-AZU-BLA.
  48.             02 pic x(40) value "FCOLOR=BLUE, BCOLOR=WHITE".
  49.  
  50.       ****** Azul sobre Magenta
  51.        01   COL-AZU-MAG.
  52.             02 pic x(40) value "FCOLOR=BLUE, BCOLOR=MAGENTA".
  53.  
  54.       ****** Azul sobre Negro
  55.        01   COL-AZU-NEG.
  56.             02 pic x(40) value "FCOLOR=BLUE, BCOLOR=BLACK".
  57.  
  58.       ****** Azul sobre Verde
  59.        01   COL-AZU-VER.
  60.             02 pic x(40) value "FCOLOR=BLUE, BCOLOR=GREEN".
  61.  
  62.       ****** Blanco sobre Azul
  63.        01   COL-BLA-AZU.
  64.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=BLUE".
  65.  
  66.  
  67.       ****** Blanco sobre Gris
  68.        01   COL-BLA-GRI.
  69.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=WHITE".
  70.  
  71.       ****** Blanco sobre Cyan
  72.        01   COL-BLA-CYA.
  73.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=CYAN".
  74.  
  75.       ****** Blanco sobre Magenta
  76.        01   COL-BLA-MAG.
  77.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=MAGENTA".
  78.  
  79.       ****** Blanco sobre Negro
  80.        01   COL-BLA-NEG.
  81.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=BLACK LOW".
  82.  
  83.       ****** Blanco sobre Rojo
  84.        01   COL-BLA-ROJ.
  85.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=RED".
  86.  
  87.       ****** Blanco sobre Verde
  88.        01   COL-BLA-VER.
  89.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=GREEN".
  90.  
  91.       ****** Cyan sobre Blanco
  92.        01   COL-CYA-BLA.
  93.             02 pic x(40) value "FCOLOR=CYAN, BCOLOR=WHITE".
  94.  
  95.       ****** Cyan sobre Negro
  96.        01   COL-CYA-NEG.
  97.             02 pic x(40) value "FCOLOR=CYAN, BCOLOR=BLACK".
  98.  
  99.       ****** Cyan sobre Rojo
  100.        01   COL-CYA-ROJ.
  101.             02 pic x(40) value "FCOLOR=CYAN, BCOLOR=RED".
  102.  
  103.       ****** Cyan sobre Verde
  104.        01   COL-CYA-VER.
  105.             02 pic x(40) value "FCOLOR=CYAN, BCOLOR=GREEN".
  106.  
  107.       ****** Gris sobre Azul, AÂ¥ADIRLE AL FINAL DE CONTROL LOW
  108.        01   COL-GRI-AZU.
  109.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=BLUE".
  110.  
  111.       ****** Gris sobre Negro, AÂ¥ADIRLE AL FINAL DE CONTROL LOW
  112.        01   COL-GRI-NEG.
  113.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=BLACK".
  114.  
  115.       ****** Gris sobre Verde, AÂ¥ADIRLE AL FINAL DE CONTROL LOW
  116.        01   COL-GRI-VER.
  117.             02 pic x(40) value "FCOLOR=WHITE, BCOLOR=GREEN".
  118.  
  119.       ****** Magenta sobre Amarillo
  120.        01   COL-MAG-DOR.
  121.             02 pic x(40) value "FCOLOR=MAGENTA, BCOLOR=BROWN".
  122.  
  123.       ****** Magenta sobre Azul
  124.        01   COL-MAG-AZU.
  125.             02 pic x(40) value "FCOLOR=MAGENTA, BCOLOR=BLUE".
  126.  
  127.       ****** Magenta sobre Blanco
  128.        01   COL-MAG-BLA.
  129.             02 pic x(40) value "FCOLOR=MAGENTA, BCOLOR=WHITE".
  130.  
  131.       ****** Magenta sobre Negro
  132.        01   COL-MAG-NEG.
  133.             02 pic x(40) value "FCOLOR=MAGENTA, BCOLOR=BLACK".
  134.  
  135.       ****** Negro sobre Azul
  136.        01   COL-NEG-AZU.
  137.             02 pic x(40) value "FCOLOR=BLACK, BCOLOR=BLUE".
  138.  
  139.       ****** Negro sobre Blanco
  140.        01   COL-NEG-BLA.
  141.             02 pic x(40) value "FCOLOR=BLACK, BCOLOR=WHITE".
  142.  
  143.       ****** Negro sobre Cyan
  144.        01   COL-NEG-CYA.
  145.             02 pic x(40) value "FCOLOR=BLACK, BCOLOR=CYAN".
  146.  
  147.       ****** Negro sobre Rojo
  148.        01   COL-NEG-ROJ.
  149.             02 pic x(40) value "FCOLOR=BLACK, BCOLOR=RED".
  150.  
  151.       ****** Negro sobre Verde
  152.        01   COL-NEG-VER.
  153.             02 pic X(37) value "FCOLOR=BLACK, BCOLOR=GREEN".
  154.  
  155.       ****** Rojo sobre Azul
  156.        01   COL-ROJ-AZU.
  157.             02 pic x(40) value "FCOLOR=RED, BCOLOR=BLUE".
  158.  
  159.       ****** Rojo sobre Blanco
  160.        01   COL-ROJ-BLA.
  161.             02 pic x(40) value "FCOLOR=RED, BCOLOR=WHITE".
  162.  
  163.       ****** Rojo sobre Cyan
  164.        01   COL-ROJ-CYA.
  165.             02 pic x(40) value "FCOLOR=RED, BCOLOR=CYAN".
  166.  
  167.       ****** Rojo sobre Negro
  168.        01   COL-ROJ-NEG.
  169.             02 pic x(40) value "FCOLOR=RED, BCOLOR=BLACK".
  170.  
  171.       ****** Rojo sobre Rojo
  172.        01   COL-ROJ-ROJ.
  173.             02 pic x(40) value "FCOLOR=RED, BCOLOR=RED".
  174.  
  175.       ****** Verde sobre Azul
  176.        01   COL-VER-AZU.
  177.             02 pic x(40) value "FCOLOR=GREEN, BCOLOR=BLUE".
  178.  
  179.       ****** Verde sobre Cyan
  180.        01   COL-VER-CYA.
  181.             02 pic x(40) value "FCOLOR=GREEN, BCOLOR=CYAN".
  182.  
  183.       ****** Verde sobre Gris
  184.        01   COL-VER-GRI.
  185.             02 pic x(40) value "FCOLOR=GREEN, BCOLOR=WHITE".
  186.  
  187.       ****** Verde sobre Negro
  188.        01   COL-VER-NEG.
  189.             02 pic x(40) value "FCOLOR=GREEN, BCOLOR=BLACK".
  190.  
  191.       ****** Verde sobre Verde
  192.        01   COL-VER-VER.
  193.             02 pic x(40) value "FCOLOR=GREEN, BCOLOR=GREEN".
  194.  
  195.  
  196.       ******** Bordes y Cuadros
  197.  
  198.        01   LIN-HOR-DOB-78 PIC X(78) VALUE ALL "Ã".
  199.  
  200.        01   BORDES-DOBLES.
  201.             02 ESQ-SUP-IZQ-DOB PIC X VALUE "É".
  202.             02 ESQ-SUP-DER-DOB PIC X VALUE "»".
  203.             02 ESQ-INF-IZQ-DOB PIC X VALUE "È".
  204.             02 ESQ-INF-DER-DOB PIC X VALUE "¼".
  205.             02 LIN-HOR-DOB     PIC X VALUE "Ã".
  206.             02 LIN-VER-DOB     PIC X VALUE "º".
  207.        01   BORDES-SIMPLES.
  208.             02 ESQ-SUP-IZQ-SIM PIC X VALUE "Ú".
  209.             02 ESQ-SUP-DER-SIM PIC X VALUE "¿".
  210.             02 ESQ-INF-IZQ-SIM PIC X VALUE "À".
  211.             02 ESQ-INF-DER-SIM PIC X VALUE "Ù".
  212.             02 LIN-HOR-SIM     PIC X VALUE "Ä".
  213.             02 LIN-VER-SIM     PIC X VALUE "³".
  214.  
  215.       ******** Variables Generales
  216.  
  217.        01   COLUMNA-FILA-22 PIC 99 VALUE 0.
  218.        01   COLUMNA-FILA-23 PIC 99 VALUE 0.
  219.        01   INDICE-FILA-23  PIC 99 VALUE 0.
  220.        01   COL-ESQ-SUP-IZQ-FILA-22   PIC 99 VALUE 0.
  221.        01   COL-ESQ-SUP-DER-FILA-22   PIC 99 VALUE 0.
  222.        01   COL-ESQ-INF-IZQ-FILA-24   PIC 99 VALUE 0.
  223.        01   COL-ESQ-INF-DER-FILA-24   PIC 99 VALUE 0.
  224.        01   COL-ESQ-SUP-DER-FILA-22-1 PIC 99 VALUE 0.
  225.  
  226.        01   SW     PIC 9 VALUE 0.
  227.        
  228.        01   TECLA PIC X.
  229.            
  230.       ****** Parte correspondiente al mensaje de la linea 23      
  231.  
  232.       ****** Tabla para guardar las letras sueltas de la linea 22
  233.        01   TAB-LETRAS.
  234.             02           PIC X  VALUE SPACE.
  235.  
  236.        01   RTAB-LETRAS REDEFINES TAB-LETRAS.
  237.             02 LETRAS   PIC X OCCURS 74 TIMES.
  238.  
  239.        01   NUM-LETRAS      PIC 99    VALUE 0.
  240.        01   INDICE-LETRAS   PIC 99    VALUE 99.
  241.  
  242.        01   REGLA PIC X(80) VALUE SPACES.
  243.        01   REGLA1 PIC X(20) VALUE "12345678901234567890".
  244.        01   REGLA2 PIC X(20) VALUE "12345678901234567890".
  245.        01   REGLA3 PIC X(20) VALUE "12345678901234567890".
  246.        01   REGLA4 PIC X(20) VALUE "12345678901234567890".
  247.  
  248.       ****** Tabla para guardar el texto de la linea 22
  249.        01   TAB-TEX.
  250.             02           PIC X(74).
  251.  
  252.        01   RTAB-TEX REDEFINES TAB-TEX.
  253.             02 RTAB-TEXTO     PIC X(74) OCCURS 1 TIMES.
  254.  
  255.        LINKAGE SECTION.
  256.        
  257.        01   MENSAJE PIC X(55).
  258.  
  259.  
  260.        PROCEDURE DIVISION USING MENSAJE.
  261.  
  262.        INICIO.
  263.  
  264.       ****** Displayar una regla en la linea 25 de ayuda visual
  265.             STRING REGLA1 DELIMITED BY SIZE
  266.                     REGLA2 DELIMITED BY SIZE
  267.                     REGLA3 DELIMITED BY SIZE
  268.                     REGLA4 DELIMITED BY SIZE
  269.                     INTO REGLA.
  270.  
  271.             DISPLAY REGLA
  272.             LINE 25 POSITION 1
  273.             CONTROL COL-BLA-AZU.
  274.  
  275.             PERFORM INICIALIZACION.
  276.             PERFORM CUENTA-LETRAS.
  277.             PERFORM COGE-LETRAS.
  278.             PERFORM CALCULA-COORDENADAS.
  279.             PERFORM SACA-CUADRO.
  280.  
  281.       ****** ATENCION!!!
  282.      ****** Con STOP RUN, el programa se puede usar por si solo
  283.      ****** Si se va a llamar desde otro programa, debe terminar as¡.
  284.              EXIT PROGRAM.
  285.  
  286.  
  287.  
  288.        INICIALIZACION.
  289.      ******************************************************************
  290.      ******************************************************************
  291.      ******************************************************************
  292.      ******************************************************************
  293.      ******************************************************************
  294.      ******************************************************************
  295.      ******************************************************************
  296.      ****** Muy importante poner el SW a 0, porque si n¢, no funcionar
  297.      ****** la segunda vez que se ejecute el subprograma !!!!!!
  298.              MOVE 0 TO SW.
  299.  
  300.       ******* Poner la tabla en blanco
  301.              MOVE 1 TO INDICE-LETRAS
  302.              PERFORM 74 TIMES
  303.                MOVE SPACE TO LETRAS(INDICE-LETRAS)
  304.                ADD 1 TO INDICE-LETRAS
  305.              END-PERFORM.
  306.  
  307.       ******* Poner el contador de letras a 0
  308.              MOVE 0 TO NUM-LETRAS.
  309.  
  310.        CUENTA-LETRAS.
  311.      ****** Cuenta todos los caracteres de la variable MENSAJE que hay
  312.      ****** antes de 2 espacios en blanco consecutivos
  313.              INSPECT MENSAJE TALLYING NUM-LETRAS FOR
  314.               CHARACTERS BEFORE INITIAL "  ".
  315.  
  316.        COGE-LETRAS.
  317.      ******Extrae caracter a caracter del texto, y lo almacena en una
  318.      ****** tabla que tiene 74 elementos
  319.      *      UNSTRING RTAB-TEXTO(1)
  320.             UNSTRING MENSAJE
  321.                INTO LETRAS(1)
  322.                     LETRAS(2)
  323.                     LETRAS(3)
  324.                     LETRAS(4)
  325.                     LETRAS(5)
  326.                     LETRAS(6)
  327.                     LETRAS(7)
  328.                     LETRAS(8)
  329.                     LETRAS(9)
  330.                     LETRAS(10)
  331.                     LETRAS(11)
  332.                     LETRAS(12)
  333.                     LETRAS(13)
  334.                     LETRAS(14)
  335.                     LETRAS(15)
  336.                     LETRAS(16)
  337.                     LETRAS(17)
  338.                     LETRAS(18)
  339.                     LETRAS(19)
  340.                     LETRAS(20)
  341.                     LETRAS(21)
  342.                     LETRAS(22)
  343.                     LETRAS(23)
  344.                     LETRAS(24)
  345.                     LETRAS(25)
  346.                     LETRAS(26)
  347.                     LETRAS(27)
  348.                     LETRAS(28)
  349.                     LETRAS(29)
  350.                     LETRAS(30)
  351.                     LETRAS(31)
  352.                     LETRAS(32)
  353.                     LETRAS(33)
  354.                     LETRAS(34)
  355.                     LETRAS(35)
  356.                     LETRAS(36)
  357.                     LETRAS(37)
  358.                     LETRAS(38)
  359.                     LETRAS(39)
  360.                     LETRAS(40)
  361.                     LETRAS(41)
  362.                     LETRAS(42)
  363.                     LETRAS(43)
  364.                     LETRAS(44)
  365.                     LETRAS(45)
  366.                     LETRAS(46)
  367.                     LETRAS(47)
  368.                     LETRAS(48)
  369.                     LETRAS(49)
  370.                     LETRAS(50)
  371.                     LETRAS(51)
  372.                     LETRAS(52)
  373.                     LETRAS(53)
  374.                     LETRAS(54)
  375.                     LETRAS(55)
  376.                     LETRAS(56)
  377.                     LETRAS(57)
  378.                     LETRAS(58)
  379.                     LETRAS(59)
  380.                     LETRAS(60)
  381.                     LETRAS(61)
  382.                     LETRAS(62)
  383.                     LETRAS(63)
  384.                     LETRAS(64)
  385.                     LETRAS(65)
  386.                     LETRAS(66)
  387.                     LETRAS(67)
  388.                     LETRAS(68)
  389.                     LETRAS(69)
  390.                     LETRAS(70)
  391.                     LETRAS(71)
  392.                     LETRAS(72)
  393.                     LETRAS(73)
  394.                     LETRAS(74).
  395.            
  396.        CALCULA-COORDENADAS.
  397.            
  398.       ****** Calcula la columna para centrar el texto, ejp
  399.      ****** si NUM-LETRAS = 50, entonces
  400.      ****** COLUMNA-FILA-23 = (80 - 50) / 2, o sea, 15
  401.             COMPUTE COLUMNA-FILA-23 = (80 - NUM-LETRAS) / 2.
  402.             ADD 1 TO COLUMNA-FILA-23.
  403.  
  404.       ****** Calcula la columna para la esquina superior izquierda,
  405.      ****** restando 1 espacio de separaci¢n
  406.             COMPUTE COL-ESQ-SUP-IZQ-FILA-22 = COLUMNA-FILA-23 - 1.
  407.  
  408.       ****** Calcula la columna para la esquina superior derecha que es
  409.      ****** el numero de letras + 1
  410.             COMPUTE COL-ESQ-SUP-DER-FILA-22 = COL-ESQ-SUP-IZQ-FILA-22
  411.               + NUM-LETRAS + 1.
  412.  
  413.       ****** Calcula la columna de la fila 23 donde va el texto
  414.      ****** que es la columna de la fila 22 - 1
  415.             COMPUTE COLUMNA-FILA-22 = COLUMNA-FILA-23 - 1.
  416.  
  417.        SACA-CUADRO.
  418.  
  419.       ****** Graficos linea 22.
  420.      ****** Esquina superior izquierda simple linea 22 "Ú"
  421.             DISPLAY ESQ-SUP-IZQ-SIM
  422.                LINE 22 POSITION COLUMNA-FILA-22
  423.                CONTROL COL-BLA-ROJ.
  424.  
  425.       ****** Linea horizontal de la fila 22 "Ä"
  426.             COMPUTE
  427.                COL-ESQ-SUP-DER-FILA-22-1 = COL-ESQ-SUP-DER-FILA-22 - 1.
  428.             PERFORM CREA-FILA-22 VARYING INDICE-FILA-23 FROM
  429.               COLUMNA-FILA-23 BY 1 UNTIL INDICE-FILA-23 >
  430.               COL-ESQ-SUP-DER-FILA-22-1.
  431.  
  432.       ****** Esquina superior derecha del mensaje de la fila 22 "¿"
  433.             DISPLAY ESQ-SUP-DER-SIM
  434.               LINE 22 POSITION COL-ESQ-SUP-DER-FILA-22
  435.               CONTROL COL-BLA-ROJ.
  436.  
  437.       ****** Linea vertical a la izquierda del texto "³"
  438.             DISPLAY LIN-VER-SIM
  439.               LINE 23 POSITION COL-ESQ-SUP-IZQ-FILA-22
  440.               CONTROL COL-BLA-ROJ.
  441.  
  442.       ****** Linea vertical a la derecha del texto "³"
  443.             DISPLAY LIN-VER-SIM
  444.                LINE 23 POSITION COL-ESQ-SUP-DER-FILA-22
  445.                CONTROL COL-BLA-ROJ.
  446.            
  447.       ******Esquina inferior izquierda de la fila 24 "À"
  448.             DISPLAY ESQ-INF-IZQ-SIM
  449.               LINE 24 POSITION COL-ESQ-SUP-IZQ-FILA-22
  450.               CONTROL COL-BLA-ROJ.
  451.  
  452.       ******Linea horizontal de la fila 24 "Ä"
  453.             COMPUTE
  454.                COL-ESQ-SUP-DER-FILA-22-1 = COL-ESQ-SUP-DER-FILA-22 - 1.
  455.  
  456.             PERFORM CREA-FILA-24 VARYING INDICE-FILA-23 FROM
  457.               COLUMNA-FILA-23 BY 1 UNTIL INDICE-FILA-23 >
  458.               COL-ESQ-SUP-DER-FILA-22-1.
  459.            
  460.       ******Esquina inferior derecha de la fila 24 "Ù"
  461.             DISPLAY ESQ-INF-DER-SIM
  462.                LINE 24 POSITION COL-ESQ-SUP-DER-FILA-22
  463.                CONTROL COL-BLA-ROJ.
  464.  
  465.       ****** Para que se vea el mensaje
  466.             ACCEPT TECLA
  467.                LINE 25 POSITION 80 NO BEEP.
  468.  
  469.       ******Linea horizontal simple superior "Ä"
  470.        CREA-FILA-22.
  471.             DISPLAY LIN-HOR-SIM
  472.                LINE 22 POSITION INDICE-FILA-23
  473.                CONTROL COL-BLA-ROJ.
  474.  
  475.       ******Linea horizontal simple inferior "Ä"
  476.        CREA-FILA-24.
  477.             DISPLAY LIN-HOR-SIM
  478.                LINE 24 POSITION INDICE-FILA-23
  479.                CONTROL COL-BLA-ROJ.
  480.  
  481.             COMPUTE COLUMNA-FILA-22 = COLUMNA-FILA-23 - 1.
  482.             MOVE 0 TO INDICE-LETRAS.
  483.  
  484.             IF SW = 0
  485.                PERFORM VARYING INDICE-LETRAS FROM 1 BY 1
  486.                   UNTIL INDICE-LETRAS > NUM-LETRAS
  487.  
  488.                   DISPLAY LETRAS(INDICE-LETRAS)
  489.                      LINE 23 POSITION COLUMNA-FILA-23
  490.                      CONTROL COL-AMA-VER
  491.                   ADD 1 TO COLUMNA-FILA-23
  492.                   MOVE 1 TO SW
  493.                END-PERFORM.
Paco_Diaz is offline   Responder Con Cita
  #2
Antiguo 9 de noviembre de 2022, 14:58
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14

Buenas.

Acabo de ver que todo lo que es caracteres gráficos (lineas doble, simples, esquinas y demás), además de la palabra acentuadas, no se ven correctamente, y eso hará que quien copie y pegue el código, no lo va a poder utilizar.

No puedo borrarlo y volverlo a escribir, porque ya no me aparece la opción de editado, así que lo volveré a pegar a ver que pasa.

Un saludo. Paco.
Paco_Diaz is offline   Responder Con Cita
  #3
Antiguo 9 de noviembre de 2022, 17:08
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Paco_Diaz, porque lo estás copiando de donde lo tengas que está en UTF8, y el foro está en ISO-8859-1.

Pasa por Notepad++ o similar, convierte y pega después.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #4
Antiguo 9 de noviembre de 2022, 19:29
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14

Buenas.

@Kuk, la página de códigos que uso es la 437.

Si recargo el código en la que me dices, los caracteres gráficos, no se ven bien, son sustituidos por otros, al igual que las letras acentuadas, a mí no me salen, si no, fíjate en el texto del principio.

Un saludo. Paco.
Paco_Diaz is offline   Responder Con Cita
  #5
Antiguo 9 de noviembre de 2022, 20:47
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Paco_Diaz, lo enconding/code-page son historias muy complicadas. En todo caso, lo es cierto es que la que usas tú que es la OEM-US no es compatible con la ISO8859, por lo tanto los caracteres especiales no se van a ver. En general, lo mejor es indicar los caracteres especiales en hexadecimal, así no hay conversión ninguna y el valor se queda fijo, sea la que sea la codificación.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #6
Antiguo 10 de noviembre de 2022, 12:19
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14

Buenas.

@Kuk, No sé como se hace eso.

Yo tengo varios editores de texto, pero para que salgan los caracteres OEM, uso la página de códigos 437 como te dije. Si hago un reloado con otra página, los caracteres se sustituyen por "marcianitos", y así he trabajado siempre. El sistema que dices, lo desconozco.

Un saludo. Paco.
Paco_Diaz is offline   Responder Con Cita
  #7
Antiguo 10 de noviembre de 2022, 22:18
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Paco_Diaz, resumiendo lo que te quería decir es que el foro es como un editor más con una codificación concreta que es la ISO-8859-1 y la BBDD del foro está igual latin1_general_ci. Lo cual significa que los caracteres especiales de OEM 437 nunca se van a ver bien en el foro.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #8
Antiguo 11 de noviembre de 2022, 12:02
Paco_Diaz
Forero
Última Actividad 09.11.2024 09:15
Posts Posts: 56
Likes enviados Enviados: 11
Likes recibidos Recibidos: 14

Buenas.

Ok, en ese caso, si hay alguien interesado en el programa, que me lo pida, y yo se lo paso gustosamente.

Un saludo. Paco.
Paco_Diaz is offline   Responder Con Cita
Respuesta



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 14:04.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.