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
[Sintaxis] Tecla ESC mengue GnuCOBOL (OpenCOBOL) 4 29 de noviembre de 2024 23:19
[Sintaxis] Ejemplos acceso COBOL Dasije WinDev 1 25 de octubre de 2022 12:20
[Duda] Manejo de archivos en Red moraber RM/COBOL 5 11 de marzo de 2019 18:29
[Duda] Ejemplos en Visual? Nicolas Veron Visual COBOL y DEV-HUB 10 6 de septiembre de 2017 08:42
[Compilador] Pasar ENTRY-FIELD con la tecla ENTER Anthony AcuCobol 4 5 de marzo de 2015 16:02

Respuesta

  #1
Antiguo 16 de enero de 2023, 02:50
FPAIX
Acabo de llegar...
Última Actividad 16.01.2023 02:56
Posts Posts: 1
Likes enviados Enviados: 0
Likes recibidos Recibidos: 2
Consola Ejemplos de manejo de archivos y tecla de funcion
2 Inactivo Inactivo

Dejo un programa en opencobol, por si alguien necesita un poco de ayuda.
Código COBOL:
  1.      *----------------------------------------------------------------------
  2.      * Programaprueba
  3.      * Enero 2023
  4.      * Author: Fernando Paz.
  5.      *----------------------------------------------------------------------
  6.        IDENTIFICATION DIVISION.
  7.        PROGRAM-ID. crearclientes.
  8.        ENVIRONMENT DIVISION.
  9.        CONFIGURATION SECTION.
  10.        SPECIAL-NAMES.
  11.            CRT STATUS IS KEY-STATUS.
  12.        INPUT-OUTPUT SECTION.
  13.        FILE-CONTROL.
  14.  
  15.        SELECT OPTIONAL DATOS  ASSIGN TO
  16.            'C:\OpenCobolIDE\DATOS.DAT'
  17.            ORGANIZATION INDEXED
  18.            ACCESS MODE DYNAMIC
  19.            RECORD KEY NIT
  20.            ALTERNATE RECORD KEY IS NIT-EDAD
  21.                      WITH DUPLICATES
  22.            ALTERNATE RECORD KEY IS DIRECCION
  23.                      WITH DUPLICATES
  24.            ALTERNATE RECORD KEY IS NOMBRE
  25.                      WITH DUPLICATES
  26.            FILE STATUS STATUS-DATOS.
  27.  
  28.        DATA DIVISION.
  29.        FILE SECTION.
  30.  
  31.        FD  DATOS LABEL RECORD IS STANDARD.
  32.        01  REG-DATOS.
  33.            05 NIT.
  34.               07 CODIGO           PIC 9(06).
  35.            05 NOMBRE              PIC A(60).
  36.            05 DIRECCION           PIC X(40).
  37.            05 NIT-EDAD.
  38.               07 EDAD             PIC 9(03).
  39.  
  40.        WORKING-STORAGE SECTION.
  41.        77  AA           PIC 99.
  42.        77  JJ           PIC 9(6).
  43.        77  J            PIC 99.
  44.        77  STATUS-DATOS PIC XX.
  45.        77  PAUSAR       PIC X value spaces.
  46.        77  CAIDA        PIC X.
  47.        77  MAS-CODIGO   PIC ZZZZZ9.
  48.        77  MAS-EDAD     PIC ZZ9.
  49.        77  ERROR-TEXTO  PIC X(50).
  50.        77  SN           PIC X.
  51.        77  SNN          PIC X.
  52.        77  TEXTO-LIMPIO PIC X(80) VALUE SPACES.
  53.        77  LINEA-LIMPIO PIC X(60) VALUE SPACES.
  54.        77  AUX-OP       PIC 9(04).
  55.        77  AUX-EDAD     PIC 9(04).
  56.        77  AUX-NOMBRE   PIC A(60).
  57.        77  AUX-DIRE     PIC X(40).
  58.        77  AUX-LINE     PIC 99.
  59.  
  60.        01  KEY-STATUS.
  61.            03 KEY-LLAVE     PIC 9(04).
  62.               88 F2         VALUE 1002.
  63.               88 F3         VALUE 1003.
  64.               88 F5         VALUE 1005.
  65.               88 F6         VALUE 1006.
  66.               88 F7         VALUE 1007.
  67.               88 F8         VALUE 1008.
  68.               88 F9         VALUE 1009.
  69.               88 ESC        VALUE 1004.
  70.  
  71.        01  vector-datos.
  72.            05 LVECC occurs 9999 times.
  73.               10 VCOD   PIC 9(06).
  74.  
  75.        PROCEDURE DIVISION.
  76.        DECLARATIVES.
  77.        000-File-Error SECTION.
  78.            USE AFTER STANDARD ERROR PROCEDURE ON DATOS.
  79.        000-Handle-Error.
  80.            move "S" to caida.
  81.        END DECLARATIVES.
  82.        MAIN-LOGIC SECTION.
  83.        PROGRAM-BEGIN.
  84.            perform abrir
  85.            perform menu thru fin-menu.
  86.            perform cerrar.
  87.            goback.
  88.  
  89.        abrir.
  90.            open i-o datos.
  91.        CERRAR.
  92.            close DATOS.
  93.  
  94.        menu.
  95.            MOVE SPACES TO SN.
  96.            PERFORM UNTIL SN = "F"
  97.             PERFORM limpiar-todo
  98.             display "Unidad Vecinal" at line 1 col 1
  99.                display "Opciones del Sistema" at line 5 col 25
  100.                                         with reverse-video
  101.             display "(F5) Agregar, Modificar, Eliminar" at line 7  col 4
  102.             display "(F6) Consulta por Edad           " at line 8  col 4
  103.             display "(F7) Consulta por Nombre         " at line 9  col 4
  104.             display "(F8) Consulta por Direccion      " at line 10 col 4
  105.             display "(F9) Exit                        " at line 11 col 4
  106.             display "( ) Presione Tecla              " at line 13 col 4
  107.                                                      with reverse-video
  108.  
  109.                    accept SN at line 13 col 5 with prompt underline
  110.                           reverse-video end-accept
  111.  
  112.                    IF F5
  113.                      perform ingreso thru fin-ingreso
  114.                    end-if
  115.                    IF F6 OR F7 OR F8
  116.                       MOVE KEY-LLAVE TO AUX-OP
  117.                       perform consulta thru fin-consulta until esc
  118.                    end-if
  119.                    IF F9   MOVE "F" TO SN END-IF
  120.            END-PERFORM.
  121.        fin-menu.
  122.            exit.
  123.  
  124.        consulta.
  125.            MOVE AUX-OP  TO KEY-LLAVE
  126.            INITIALIZE vector-datos
  127.            move spaces to REG-DATOS
  128.            perform limpiar-todo.
  129.            display "Unidad Vecinal" at line 1 col 1
  130.            display "Consulta Informacion" at line 5 col 25
  131.                                         with reverse-video.
  132.            display
  133.            "*********************************************************"
  134.                                                      at line 8 col 1
  135.                                                "*********************"
  136.            display
  137.            "Codigo   Nombre                                 Edad"
  138.                                      at line 9 col 1 with reverse-video
  139.                         "   Direccion              " with reverse-video
  140.            display
  141.            "**********************************************************"
  142.                                                         at line 10 col 1
  143.                                               "********************"
  144.            display "(F4) Exit /(F2) Sube (F3) Baja" at
  145.                     line 24 col 25 with reverse-video.
  146.            IF F6 go to consulta-edad.
  147.            IF F7 go to consulta-nombre.
  148.            IF F8 go to consulta-direccion.
  149.        consulta-edad.
  150.            display "Edad      :"  at line 7 col 4 with reverse-video.
  151.            accept edad at line 7 col 17 with prompt UNDERLINE UPDATE.
  152.  
  153.            display "Edad      :" at line 7 col 4.
  154.            MOVE EDAD TO MAS-EDAD
  155.            display MAS-edad  at line 7 col 17.
  156.  
  157.            if esc go to fin-consulta.
  158.            if F2  go to aceptar-edad.
  159.            if EDAD < 1 OR > 100
  160.               move "Edad fuera de Rango" TO
  161.                     ERROR-TEXTO
  162.               PERFORM MUESTRO-ERROR
  163.               MOVE SPACES TO NIT-EDAD
  164.               GO TO consulta-edad.
  165.            GO TO consulta-empezar.
  166.         consulta-nombre.
  167.            display "Nombre    :"  at line 7 col 4 with reverse-video.
  168.            accept NOMBRE at line 7 col 17 with prompt UNDERLINE UPDATE.
  169.  
  170.            display "Nombre    :" at line 7 col 4.
  171.            display NOMBRE  at line 7 col 17.
  172.  
  173.            if esc go to fin-consulta.
  174.            if F2  go to aceptar-nombre.
  175.            if NOMBRE = SPACES
  176.               move "Debe Ingresar Nombre" TO
  177.                     ERROR-TEXTO
  178.               PERFORM MUESTRO-ERROR
  179.               MOVE SPACES TO NOMBRE
  180.               GO TO consulta-nombre.
  181.            MOVE 0 TO AA
  182.            PERFORM VARYING J FROM 60 BY -1 UNTIL J < 1
  183.                    OR NOMBRE(J:1) NOT = SPACES
  184.                    ADD 1 TO AA
  185.            END-PERFORM
  186.            COMPUTE AA = 60 - AA
  187.  
  188.            GO TO consulta-empezar.
  189.         consulta-direccion.
  190.            display "Direccion  :"  at line 7 col 4 with reverse-video.
  191.            accept direccion at line 7 col 17 with prompt
  192.                                         UNDERLINE UPDATE.
  193.  
  194.            display "Direccion  :" at line 7 col 4.
  195.            display direccion  at line 7 col 17.
  196.  
  197.            if esc go to fin-consulta.
  198.            if F2  go to aceptar-direccion.
  199.            if direccion = SPACES
  200.               move "Debe Ingresar Direccion" TO
  201.                     ERROR-TEXTO
  202.               PERFORM MUESTRO-ERROR
  203.               MOVE SPACES TO DIRECCION
  204.               GO TO consulta-direccion.
  205.            MOVE DIRECCION TO AUX-DIRE
  206.            MOVE 0 TO AA
  207.            PERFORM VARYING J FROM 40 BY -1 UNTIL J < 1
  208.                    OR DIRECCION(J:1) NOT = SPACES
  209.                    ADD 1 TO AA
  210.            END-PERFORM
  211.            COMPUTE AA = 40 - AA.
  212.        consulta-empezar.
  213.            MOVE 1      TO JJ.
  214.            MOVE AUX-OP TO KEY-LLAVE.
  215.            IF F6
  216.               MOVE  EDAD TO AUX-EDAD
  217.               START DATOS KEY IS NOT LESS THAN NIT-EDAD
  218.                     INVALID KEY GO TO fin-consulta
  219.               END-START
  220.            END-IF.
  221.            IF F7
  222.               MOVE  NOMBRE TO AUX-NOMBRE
  223.               START DATOS KEY IS NOT LESS THAN NOMBRE
  224.                     INVALID KEY GO TO fin-consulta
  225.               END-START
  226.            END-IF.
  227.            IF F8
  228.               MOVE  DIRECCION TO AUX-DIRE
  229.               START DATOS KEY IS NOT LESS THAN DIRECCION
  230.                     INVALID KEY GO TO fin-consulta
  231.               END-START
  232.            END-IF.
  233.        consulta-vector.
  234.            READ DATOS NEXT WITH NO LOCK AT END
  235.                       GO TO consulta-mostrar.
  236.            IF F6
  237.               IF AUX-EDAD NOT = EDAD
  238.                  GO TO consulta-mostrar
  239.               END-IF
  240.            END-IF.
  241.            IF F7
  242.               IF AUX-NOMBRE(1:AA) NOT = NOMBRE(1:AA)
  243.                  GO TO consulta-vector
  244.               END-IF
  245.            END-IF.
  246.            IF F8
  247.               IF AUX-DIRE(1:AA) NOT = DIRECCION(1:AA)
  248.                  GO TO consulta-vector
  249.               END-IF
  250.            END-IF.
  251.  
  252.            MOVE CODIGO TO VCOD(JJ)
  253.            ADD 1 TO JJ
  254.            go to consulta-vector.
  255.        consulta-mostrar.
  256.            MOVE 1 TO JJ J.
  257.            MOVE 11 TO AUX-LINE.
  258.        consulta-display.
  259.            IF   VCOD(JJ) = ZEROES OR JJ > 9999
  260.                 go to consulta-pregunta.
  261.  
  262.            INITIALIZE MAS-CODIGO MAS-EDAD
  263.            MOVE VCOD(JJ)   TO CODIGO.
  264.            READ DATOS WITH NO LOCK INVALID KEY
  265.                       MOVE SPACES  TO REG-DATOS.
  266.  
  267.            MOVE CODIGO TO MAS-CODIGO
  268.            MOVE EDAD   TO MAS-EDAD
  269.  
  270.            DISPLAY MAS-CODIGO  AT LINE  AUX-LINE COL 2.
  271.            DISPLAY NOMBRE      AT LINE  AUX-LINE COL 15.
  272.            DISPLAY MAS-EDAD    AT LINE  AUX-LINE COL 50.
  273.            DISPLAY DIRECCION   AT LINE  AUX-LINE COL 55.
  274.            ADD   1 TO AUX-LINE JJ
  275.            IF    AUX-LINE > 21
  276.                  DISPLAY
  277.                  "Presiones Enter para Continuar/F2 para Retroceder"
  278.                  at line 23 col 2 with reverse-video
  279.                  accept sn line 23 col 1 with prompt
  280.                                   UNDERLINE UPDATE end-accept
  281.  
  282.                  MOVE 11 TO AUX-LINE
  283.                  PERFORM VARYING J FROM 11 BY 1 UNTIL J > 21
  284.                          display TEXTO-LIMPIO at line J col 1
  285.                  END-PERFORM
  286.                  IF F2
  287.                     IF JJ = 12
  288.                        go to consulta
  289.                     ELSE
  290.                        COMPUTE JJ = JJ - 11
  291.                        MOVE 11 TO AUX-LINE
  292.                        go to consulta-display
  293.                    END-IF
  294.                 END-IF
  295.            END-IF.
  296.  
  297.            GO TO consulta-display.
  298.        consulta-pregunta.
  299.            DISPLAY
  300.            "Presiones Enter para Continuar/F2 para Retroceder"
  301.                        at line 23 col 2 with reverse-video
  302.            accept sn line 23 col 1 with prompt
  303.                    UNDERLINE UPDATE end-accept .
  304.            IF F2
  305.              IF JJ < 12
  306.                 GO TO CONSULTA
  307.              ELSE
  308.               COMPUTE AA = (AUX-LINE - 11) + 1
  309.               COMPUTE JJ =
  310.               (JJ + (11 - AA) - 22 ) + 1
  311.               MOVE 11 TO AUX-LINE
  312.               PERFORM VARYING J FROM 11 BY 1 UNTIL J > 21
  313.                       display TEXTO-LIMPIO at line J col 1
  314.               END-PERFORM
  315.               GO TO consulta-display
  316.             END-IF
  317.            END-IF.
  318.        fin-consulta.
  319.            exit.
  320.  
  321.  
  322.        limpiar-todo.
  323.            PERFORM VARYING J FROM 1 BY 1 UNTIL J > 24
  324.                    display TEXTO-LIMPIO at line J col 1
  325.            END-PERFORM.
  326. ************************************************************************
  327. ***********  AGREGAR MODIFICAR ELIMINAR                                *
  328. ************************************************************************
  329.        ingreso.
  330.            PERFORM limpiar-todo
  331.            MOVE    SPACES TO  REG-DATOS.
  332.            perform pantalla thru fin-pantalla
  333.            perform aceptar-datos thru fin-aceptar-datos until esc.
  334.        fin-ingreso.
  335.            exit.
  336.  
  337.        pantalla.
  338.            display "Unidad Vecinal" at line 1 col 1
  339.            display "Ingresa Informacion" at line 5 col 25
  340.                                         with reverse-video.
  341.            display "Codigo    :"  at line 7  col 4.
  342.            display "Edad      :"  at line 8  col 4.
  343.            display "Nombre    :"  at line 9  col 4.
  344.            display "Direccion :"  at line 10 col 4.
  345.            display "(F4) Exit /(F2) Sube (F3) Baja" at
  346.                     line 24 col 25 with reverse-video.
  347.        fin-pantalla.
  348.            exit.
  349.  
  350.        aceptar-datos.
  351.            MOVE SPACES TO  REG-DATOS.
  352.            PERFORM aceptar-limpiar.
  353.        aceptar-nit.
  354.            display "Codigo    :"  at line 7  col 4 with reverse-video.
  355.            accept CODIGO at line 7 col 17 with prompt UNDERLINE UPDATE.
  356.  
  357.            display "Codigo    :" at line 7 col 4.
  358.            MOVE CODIGO TO MAS-CODIGO
  359.            display MAS-CODIGO at line 7 col 17
  360.  
  361.            READ DATOS WITH NO LOCK
  362.                 INVALID KEY CONTINUE
  363.                 NOT INVALID KEY
  364.                     PERFORM LLENAR THRU FIN-LLENAR
  365.                     IF SNN = "E"
  366.                        GO TO ACEPTAR-DATOS
  367.                     END-IF
  368.            END-READ
  369.  
  370.            if esc go to fin-aceptar-datos.
  371.            if F2  go to aceptar-nit.
  372.            if F3  go to aceptar-edad.
  373.            if CODIGO = zeroes
  374.               move "Error Codido debe ser mayor a cero" TO
  375.                     ERROR-TEXTO
  376.               PERFORM MUESTRO-ERROR
  377.               MOVE SPACES TO NIT
  378.               GO TO ACEPTAR-NIT.
  379.        aceptar-edad.
  380.            display "Edad      :"  at line 8  col 4 with reverse-video.
  381.            accept edad at line 8 col 17 with prompt UNDERLINE UPDATE.
  382.  
  383.            display "Edad      :" at line 8 col 4.
  384.            MOVE EDAD TO MAS-EDAD
  385.            display MAS-edad  at line 8 col 17.
  386.  
  387.            if esc go to fin-aceptar-datos.
  388.            if F2  go to aceptar-nit.
  389.            if F3  go to aceptar-nombre.
  390.            if EDAD < 1 OR > 100
  391.               move "Edad fuera de Rango" TO
  392.                     ERROR-TEXTO
  393.               PERFORM MUESTRO-ERROR
  394.               MOVE SPACES TO NIT-EDAD
  395.               GO TO ACEPTAR-EDAD.
  396.        aceptar-nombre.
  397.            display "Nombre    :"  at line 9  col 4 with reverse-video.
  398.            accept nombre at line 9 col 17 with prompt UNDERLINE UPDATE.
  399.  
  400.            display "Nombre    :" at line 9 col 4.
  401.            display nombre  at line 9 col 17.
  402.  
  403.            if esc go to fin-aceptar-datos.
  404.            if F2  go to aceptar-edad.
  405.            if F3  go to aceptar-direccion.
  406.            if nombre = spaces
  407.               move "Debe Ingresar Nombre" TO
  408.                     ERROR-TEXTO
  409.               PERFORM MUESTRO-ERROR
  410.               MOVE SPACES TO NOMBRE
  411.               GO TO ACEPTAR-EDAD.
  412.        aceptar-direccion.
  413.            display "Direccion :" at line 10  col 4 with reverse-video.
  414.            accept direccion at line 10 col 17 with
  415.                           prompt UNDERLINE UPDATE.
  416.  
  417.            display "Direccion :" at line 10 col 4.
  418.            display direccion  at line 10 col 17.
  419.  
  420.            if esc go to fin-aceptar-datos.
  421.            if F2  go to aceptar-nombre.
  422.            if F3  go to aceptar-direccion.
  423.            if direccion = spaces
  424.               move "Debe Ingresar direccion" TO
  425.                     ERROR-TEXTO
  426.               PERFORM MUESTRO-ERROR
  427.               MOVE SPACES TO DIRECCION
  428.               GO TO ACEPTAR-DIRECCION.
  429.        aceptar-validacion-codigo.
  430.            if codigo = zeroes
  431.               move "Error Codido debe ser mayor a cero" TO
  432.                     ERROR-TEXTO
  433.               PERFORM MUESTRO-ERROR
  434.               MOVE SPACES TO NIT
  435.               GO TO ACEPTAR-NIT.
  436.        aceptar-validacion-edad.
  437.            if edad < 1 or > 100
  438.               move "Edad fuera de Rango" TO
  439.                     ERROR-TEXTO
  440.               PERFORM MUESTRO-ERROR
  441.               MOVE SPACES TO NIT-EDAD
  442.               GO TO ACEPTAR-EDAD.
  443.        aceptar-validacion-nombre.
  444.            if NOMBRE = SPACES
  445.               move "Debe Ingresar Nombre" TO
  446.                     ERROR-TEXTO
  447.               PERFORM MUESTRO-ERROR
  448.               MOVE SPACES TO NOMBRE
  449.               GO TO ACEPTAR-NOMBRE.
  450.        aceptar-validacion-direccion.
  451.            if direccion = SPACES
  452.               move "Debe Ingresar direccion" TO
  453.                     ERROR-TEXTO
  454.               PERFORM MUESTRO-ERROR
  455.               MOVE SPACES TO DIRECCION
  456.               GO TO ACEPTAR-DIRECCION.
  457.            PERFORM GRABAR THRU FIN-GRABAR.
  458.        aceptar-limpiar.
  459.            DISPLAY LINEA-LIMPIO AT LINE 7  COL 15.
  460.            DISPLAY LINEA-LIMPIO AT LINE 8  COL 15.
  461.            DISPLAY LINEA-LIMPIO AT LINE 9  COL 15.
  462.            DISPLAY LINEA-LIMPIO AT LINE 10 COL 15.
  463.        fin-aceptar-datos.
  464.            exit.
  465.  
  466.        GRABAR.
  467.            WRITE REG-DATOS INVALID KEY
  468.                  REWRITE REG-DATOS INVALID KEY
  469.                          MOVE "ERROR AL GRABAR/REGRABAR" TO ERROR-TEXTO
  470.                          PERFORM MUESTRO-ERROR
  471.                          GO TO FIN-GRABAR
  472.                  END-REWRITE
  473.            END-WRITE.
  474.            MOVE "INFORMACION FUE GRABADA" TO ERROR-TEXTO
  475.            PERFORM MUESTRO-ERROR .
  476.        FIN-GRABAR.
  477.            EXIT.
  478.  
  479.        LLENAR.
  480.            MOVE CODIGO TO MAS-CODIGO
  481.            display MAS-CODIGO at line 7  col 17.
  482.            MOVE EDAD TO MAS-EDAD
  483.            display MAS-edad   at line 8  col 17.
  484.            display nombre     at line 9  col 17.
  485.            display direccion  at line 10 col 17.
  486.  
  487.            Display "*******************************************"
  488.                                            at line 12 col 2.
  489.            Display "*( ) (M)odifica   (E)limina               *"
  490.                                            at line 13 col 2.
  491.            Display "*******************************************"
  492.                                            at line 14 col 2.
  493.            MOVE SPACES TO SNN
  494.            PERFORM UNTIL SNN = "M" OR "E"
  495.                    ACCEPT SNN at line 13 col 4 end-accept
  496.                    IF SNN = "e" MOVE "E" TO SNN END-IF
  497.                    IF SNN = "m" MOVE "M" TO SNN END-IF
  498.            END-PERFORM
  499.            IF SNN = "E"
  500.                DELETE DATOS INVALID KEY
  501.                       MOVE "ERROR AL ELIMINAR" TO ERROR-TEXTO
  502.                       PERFORM MUESTRO-ERROR
  503.                END-DELETE
  504.                MOVE "INFORMACION ELIMINADA" TO ERROR-TEXTO
  505.                PERFORM MUESTRO-ERROR
  506.            END-IF.
  507.            DISPLAY TEXTO-LIMPIO AT LINE 12 COL 1.
  508.            DISPLAY TEXTO-LIMPIO AT LINE 13 COL 1.
  509.            DISPLAY TEXTO-LIMPIO AT LINE 14 COL 1.
  510.        FIN-LLENAR.
  511.            EXIT.
  512.  
  513.        MUESTRO-ERROR.
  514.            display ERROR-TEXTO at line 23  col 2 with reverse-video
  515.                    "Enter para Continuar".
  516.            accept SN at line 23 col 1 with REVERSE-VIDEO.
  517.            display TEXTO-LIMPIO at line 23  col 1.
Archivos Adjuntos
Tipo de Archivo: rar CREAR-CLIENTES.rar (3,4 KB)Descargas: 64
FPAIX is offline   Responder Con Cita
  #2
Antiguo 14 de febrero de 2023, 23:32
jorgeamedina2020
Forero Junior
Última Actividad 21.04.2026 20:06
Posts Posts: 24
Likes enviados Enviados: 50
Likes recibidos Recibidos: 4

@FPAIX, hola amigo
jorgeamedina2020 is offline   Responder Con Cita
  #3
Antiguo 24 de febrero de 2023, 06:34
Marengo97
Forero Junior
Última Actividad 22.11.2023 00:42
Posts Posts: 26
Likes enviados Enviados: 5
Likes recibidos Recibidos: 0

Un codigo muy interesante, lo estoy estudiando para aprender nuevas cosas, hasta ahora luego de varias horas pude entenderlo en una grande medida pero no me queda claro para nada que sucede acá, podrias explicarmelo?
Especificamente no se que funcion cumple Aux-line y los diferentes procesos con J, JJ, AA
Gracias de antemano
Código COBOL:
  1.            IF    AUX-LINE > 21
  2.                  DISPLAY
  3.                  "Presiones Enter para Continuar/F2 para Retroceder"
  4.                  at line 23 col 2 with reverse-video
  5.                  accept sn line 23 col 1 with prompt
  6.                                   UNDERLINE UPDATE end-accept
  7.  
  8.                  MOVE 11 TO AUX-LINE
  9.                  PERFORM VARYING J FROM 11 BY 1 UNTIL J > 21
  10.                          display TEXTO-LIMPIO at line J col 1
  11.                  END-PERFORM
  12.                  IF F2
  13.                     IF JJ = 12
  14.                        go to consulta
  15.                     ELSE
  16.                        COMPUTE JJ = JJ - 11
  17.                        MOVE 11 TO AUX-LINE
  18.                        go to consulta-display
  19.                    END-IF
  20.                 END-IF
  21.            END-IF.
  22.  
  23.            GO TO consulta-display.
  24.        consulta-pregunta.
  25.            DISPLAY
  26.            "Presiones Enter para Continuar/F2 para Retroceder"
  27.                        at line 23 col 2 with reverse-video
  28.            accept sn line 23 col 1 with prompt
  29.                    UNDERLINE UPDATE end-accept .
  30.            IF F2
  31.              IF JJ < 12
  32.                 GO TO CONSULTA
  33.              ELSE
  34.               COMPUTE AA = (AUX-LINE - 11) + 1
  35.               COMPUTE JJ =
  36.               (JJ + (11 - AA) - 22 ) + 1
  37.               MOVE 11 TO AUX-LINE
  38.               PERFORM VARYING J FROM 11 BY 1 UNTIL J > 21
  39.                       display TEXTO-LIMPIO at line J col 1
  40.               END-PERFORM
  41.               GO TO consulta-display
  42.             END-IF
  43.            END-IF.
  44.        fin-consulta.
  45.            exit.
Marengo97 is offline   Responder Con Cita
  #4
Antiguo 25 de febrero de 2023, 18:01
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

@Marengo97, eso es para sacar el listado desde la line 11 a la 21 y no perder la parte de arriba.
JCantero 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 14:51.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.