Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Cocina RM/COBOL (https://www.cobolforo.es/forumdisplay.php?f=45)
-   -   Texto centrado con recuadro simple en linea 23 (https://www.cobolforo.es/showthread.php?t=1562)

Paco_Diaz 9 de noviembre de 2022 13:47

Texto centrado con recuadro simple en linea 23
 
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:

Cdigo 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 9 de noviembre de 2022 14:58

Buenas.

Acabo de ver que todo lo que es caracteres grficos (lineas doble, simples, esquinas y dems), adems de la palabra acentuadas, no se ven correctamente, y eso har que quien copie y pegue el cdigo, no lo va a poder utilizar.

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

Un saludo. Paco.

Kuk 9 de noviembre de 2022 17:08

@Paco_Diaz, porque lo ests 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 despus.

Paco_Diaz 9 de noviembre de 2022 19:29

Buenas.

@Kuk, la pgina de cdigos que uso es la 437.

Si recargo el cdigo en la que me dices, los caracteres grficos, no se ven bien, son sustituidos por otros, al igual que las letras acentuadas, a m no me salen, si no, fjate en el texto del principio.

Un saludo. Paco.

Kuk 9 de noviembre de 2022 20:47

@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 conversin ninguna y el valor se queda fijo, sea la que sea la codificacin.

Paco_Diaz 10 de noviembre de 2022 12:19

Buenas.

@Kuk, No s como se hace eso.

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

Un saludo. Paco.

Kuk 10 de noviembre de 2022 22:18

@Paco_Diaz, resumiendo lo que te quera decir es que el foro es como un editor ms con una codificacin 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.

Paco_Diaz 11 de noviembre de 2022 12:02

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.


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

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