Página 1 de 2 1 2 ÚltimoÚltimo
Resultados 1 al 10 de 11

Tema: Como buscar por nombre en un registro indexado?

  1. #1
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado Como buscar por nombre en un registro indexado?

    Quiero implementar la funcion de buscar por nombre en un archivo indexado, no tengo claro como hacerlo

    Codigo completo:
    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.  
    3.        PROGRAM-ID.                 LIBRERIA.
    4.        AUTHOR.                     LUCAS GALEANO.
    5.        DATE-WRITTEN                9/7/2023.
    6.  
    7.        ENVIRONMENT DIVISION.
    8.        INPUT-OUTPUT SECTION.
    9.        FILE-CONTROL.
    10.            SELECT REG-LIBROS ASSIGN TO "REGISTRO-LIBROS.DAT"
    11.                                ORGANIZATION IS INDEXED
    12.                                RECORD KEY IS LIBRO-ID
    13.                                ALTERNATE RECORD KEY IS NOMBRE
    14.                                ALTERNATE RECORD KEY IS EDITORIAL
    15.                                ACCESS MODE IS DYNAMIC
    16.                                FILE STATUS FS-REGISTRO-LIBROS.
    17.  
    18.  
    19.        DATA DIVISION.
    20.        FILE SECTION.
    21.  
    22.        FD REG-LIBROS.
    23.  
    24.        01 DATOS-LIBRO.
    25.            05 LIBRO-ID PIC 999     VALUE ZEROS.
    26.            05 NOMBRE   PIC X(20)   VALUE SPACES.
    27.            05 EDITORIAL PIC X(20)  VALUE SPACES.
    28.            05 ESTADO   PIC X(12)   VALUE SPACES.
    29.      *05 FECHA-INGRESO.
    30.      *     10 DIA  PIC 99 VALUE ZEROS.
    31.      *     10 MES  PIC X(10) VALUE SPACES.
    32.      *     10 AÑO  PIC 9999 VALUE ZEROS.
    33.      * 05 FECHA-ALQUILER.
    34.      *     10 DDIA PIC 99 VALUE ZEROS.
    35.      *     10 MMES PIC X(10) VALUE SPACES.
    36.      *     10 AAÑO PIC 9999 VALUE ZEROS.
    37.  
    38.        WORKING-STORAGE SECTION.
    39.      *Codigos de error del archivo.
    40.        01 FS-REGISTRO-LIBROS PIC XX.
    41.            88 ESTA-REG         VALUE "00" "02".
    42.            88 N-ESTA-REG       VALUE "23".
    43.            88 F-NOEXISTE-REG   VALUE "35".
    44.            88 FIN-REG          VALUE "10".
    45.            88 F-ABIERTO        VALUE "12".
    46.      *Variables del programa.
    47.        77 CONTINUAR PIC X.
    48.        77 CONTINUAR-REG PIC X.
    49.        77 ELIMINAR-OPC  PIC X.
    50.        77 BUSCAR-OPC    PIC X.    
    51.        77 OPC       PIC X.
    52.        77 LIMPIAR   PIC X(80) VALUE SPACES.
    53.        77 LIMPIAR-LINEA PIC X(80) VALUE SPACES.
    54.        77 N         PIC 99.
    55.        77 AUX-ID    PIC 999.
    56.        77 AUX-NOMBRE PIC X(20).
    57.  
    58.        PROCEDURE DIVISION.
    59.        DECLARATIVES.
    60.      *Estados de error del archivo
    61.        FILE-ERROR SECTION.
    62.            USE AFTER STANDARD ERROR PROCEDURE ON REG-LIBROS.
    63.            IF FS-REGISTRO-LIBROS EQUALS "35" THEN
    64.                SET F-NOEXISTE-REG TO TRUE
    65.            END-IF.
    66.        END DECLARATIVES.
    67.      *LOGICA PRINCIPAL
    68.        MENU.
    69.            PERFORM UNTIL CONTINUAR = "N"
    70.            PERFORM LIMPIAR-PANTALLA
    71.            DISPLAY "ADMINISTRADOR DE CATALOGO" AT LINE 1 COL 1 WITH
    72.                                                            REVERSE-VIDEO
    73.            DISPLAY " "                         AT LINE 3 COL 1
    74.            DISPLAY "1.Registrar, Editar, Remplazar libro" AT LINE 4
    75.                                                            COL 1
    76.            DISPLAY "2.Eliminar libro"          AT LINE 5 COL 1
    77.            DISPLAY "3.Ver catalogo"            AT LINE 6 COL 1
    78.            DISPLAY "4.Crear nuevo registro"    AT LINE 7 COL 1
    79.            DISPLAY "5.Buscar libro"            AT LINE 8  
    80.            DISPLAY "0.Salir"                   AT LINE 9 COL 1
    81.            DISPLAY " "                         AT LINE 10 COL 1
    82.            DISPLAY "Ingrese tecla ( )"         AT LINE 11 COL 1 WITH
    83.                                                            REVERSE-VIDEO
    84.            ACCEPT OPC                          AT LINE 11 COL 16 WITH
    85.                                                PROMPT UNDERLINE
    86.            EVALUATE OPC
    87.            WHEN 1 PERFORM REGISTRAR-LIBRO
    88.            WHEN 2 PERFORM ELIMINAR-LIBRO
    89.            WHEN 3 PERFORM VER-LIBROS
    90.            WHEN 4 PERFORM CREAR-ARCHIVO
    91.            WHEN 5 PERFORM BUSCAR-LIBRO
    92.            WHEN 0 MOVE "N" TO CONTINUAR
    93.            END-EVALUATE
    94.            END-PERFORM.
    95.            CLOSE REG-LIBROS.
    96.            STOP RUN.
    97.  
    98.  
    99.        REGISTRAR-LIBRO.
    100.            MOVE SPACES TO DATOS-LIBRO.
    101.            PERFORM LIMPIAR-PANTALLA.
    102.            MOVE "S" TO CONTINUAR-REG.
    103.      *************************************************************************    
    104.      *INTERFAZ MENU DE INGRESO DE DATOS
    105.      *************************************************************************
    106.            DISPLAY "Numero de serie:" AT LINE 1 COL 1.
    107.            DISPLAY "Nombre:"       AT LINE 2 COL 1.
    108.            DISPLAY "Editorial:"    AT LINE 3 COL 1.
    109.            DISPLAY "Estado:"       AT LINE 4 COL 1.
    110.            DISPLAY
    111.            "presione ENTER sin ingresar datos para salir al menu"
    112.                                                AT LINE 7 COL 12
    113.                                                      WITH REVERSE-VIDEO.
    114.  
    115.  
    116.            DISPLAY "Numero de serie    :" AT LINE 1 COL 1 WITH
    117.                                                           REVERSE-VIDEO.
    118.            ACCEPT LIBRO-ID WITH PROMPT UNDERLINE UPDATE AT LINE 1
    119.                                                        COL 25.
    120.  
    121.            IF LIBRO-ID EQUALS 000 MOVE "N" TO CONTINUAR-REG END-IF.
    122.  
    123.  
    124.            IF CONTINUAR-REG EQUALS "S"
    125.            DISPLAY "Numero de serie    :" AT LINE 1 COL 1
    126.            DISPLAY LIBRO-ID            AT LINE 1 COL 25
    127.  
    128.            DISPLAY "Nombre    :"     AT LINE 2 COL 1 WITH REVERSE-VIDEO
    129.            ACCEPT NOMBRE               AT LINE 2 COL 25
    130.            DISPLAY "Nombre:    "       AT LINE 2 COL 1
    131.            DISPLAY NOMBRE              AT LINE 2 COL 25
    132.  
    133.            DISPLAY "Editorial    :"  AT LINE 3 COL 1 WITH REVERSE-VIDEO
    134.            ACCEPT EDITORIAL            AT LINE 3 COL 25
    135.            DISPLAY "Editorial    :"    AT LINE 3 COL 1
    136.            DISPLAY EDITORIAL           AT LINE 3 COL 25
    137.  
    138.            DISPLAY "Estado    :"     AT LINE 4 COL 1 WITH REVERSE-VIDEO
    139.            ACCEPT ESTADO               AT LINE 4 COL 25
    140.            DISPLAY "Estado    :"       AT LINE 4 COL 1
    141.            DISPLAY ESTADO              AT LINE 4 COL 25
    142.      *************************************************************************
    143.            PERFORM ABRIR-IO-ARCHIVO
    144.            WRITE DATOS-LIBRO INVALID KEY
    145.                REWRITE DATOS-LIBRO INVALID KEY
    146.                    PERFORM LIMPIAR-PANTALLA
    147.                    DISPLAY "ERROR AL REGISTRAR DATOS" AT LINE 1 COL 1
    148.                                            WITH BACKGROUND-COLOR 4
    149.            END-WRITE
    150.            PERFORM CERRAR-ARCHIVO
    151.            END-IF.
    152.  
    153.  
    154.        VER-LIBROS.
    155.            PERFORM ABRIR-ARCHIVO-INPUT.
    156.            IF F-NOEXISTE-REG THEN
    157.                PERFORM LIMPIAR-PANTALLA
    158.                DISPLAY "ERROR, NO EXISTE UN ARCHIVO DE REGISTROS"
    159.                        WITH BACKGROUND-COLOR 4 AT LINE 1 COL 1
    160.  
    161.  
    162.  
    163.                DISPLAY "Presione ENTER para salir al menu"
    164.                                                AT LINE 7 COL 12 WITH
    165.                                                REVERSE-VIDEO
    166.                ACCEPT OPC AT LINE  10 COL 34
    167.            ELSE
    168.                PERFORM LIMPIAR-PANTALLA
    169.                INITIALIZE LIBRO-ID
    170.                START REG-LIBROS KEY IS >= LIBRO-ID END-START
    171.                READ REG-LIBROS NEXT RECORD END-READ
    172.                DISPLAY
    173.                "ID |TITULO            |EDITORIAL          |ESTADO     "
    174.                WITH REVERSE-VIDEO AT LINE 1 COL 1
    175.                PERFORM VARYING N FROM 02 BY 1 UNTIL FIN-REG
    176.                    DISPLAY DATOS-LIBRO AT LINE N COL 1
    177.                    READ REG-LIBROS NEXT RECORD END-READ
    178.                END-PERFORM
    179.                ADD 1 TO N
    180.                DISPLAY "Presione ENTER para salir al menu"
    181.                                                AT LINE N COL 1 WITH
    182.                                                REVERSE-VIDEO
    183.                ACCEPT OPC AT LINE N COL 34
    184.                PERFORM CERRAR-ARCHIVO
    185.            END-IF.
    186.  
    187.  
    188.        ELIMINAR-LIBRO.
    189.            PERFORM ABRIR-IO-ARCHIVO.
    190.            PERFORM LIMPIAR-PANTALLA.
    191.            MOVE SPACES TO DATOS-LIBRO
    192.  
    193.            DISPLAY "Indique por id el libro que desea eliminar:"
    194.            WITH REVERSE-VIDEO AT LINE 1 COL 1.
    195.            DISPLAY "Presione ENTER para salir al menu"
    196.            WITH REVERSE-VIDEO AT LINE 7 COL 12.
    197.                      
    198.            ACCEPT LIBRO-ID AT LINE 1 COL 46 WITH PROMPT UNDERLINE UPDATE.
    199.            
    200.            IF LIBRO-ID NOT EQUALS 000    
    201.            
    202.            PERFORM LIMPIAR-PANTALLA
    203.  
    204.            START REG-LIBROS KEY IS = LIBRO-ID
    205.            READ REG-LIBROS END-READ
    206.            IF ESTA-REG
    207.                DISPLAY
    208.                "ID |TITULO            |EDITORIAL         |ESTADO     "
    209.                                    WITH REVERSE-VIDEO AT LINE 1 COL 1
    210.                DISPLAY DATOS-LIBRO AT LINE 2 COL 1
    211.                DISPLAY "ELIMINAR(1)|VOLVER(0) :" AT LINE 5 COL 1
    212.                                                    WITH REVERSE-VIDEO
    213.                
    214.                ACCEPT ELIMINAR-OPC AT LINE 5 COL 25
    215.                EVALUATE ELIMINAR-OPC
    216.                    WHEN 1
    217.                    DISPLAY LIMPIAR-LINEA AT LINE 10 COL 1
    218.                    DELETE REG-LIBROS INVALID KEY
    219.                        DISPLAY "ERROR AL ELIMINAR" AT LINE 5 COL 1
    220.                    END-DELETE
    221.                    DISPLAY "REGISTRO ELIMINADO CON EXITO" AT LINE 5
    222.                                                 COL 1
    223.                                                 WITH BACKGROUND-COLOR 2
    224.                            ACCEPT OPC AT LINE 5 COL 29
    225.                    WHEN 0 PERFORM ELIMINAR-LIBRO
    226.            ELSE
    227.                DISPLAY "EL REGISTRO NO EXISTE" AT LINE 1 COL 1
    228.                                            WITH BACKGROUND-COLOR 4
    229.                            ACCEPT OPC AT LINE 1 COL 22
    230.            END-IF
    231.            
    232.            END-IF.
    233.            PERFORM CERRAR-ARCHIVO.
    234.            
    235.  
    236.        CREAR-ARCHIVO.
    237.            PERFORM ABRIR-IO-ARCHIVO
    238.            IF NOT F-NOEXISTE-REG THEN
    239.                PERFORM LIMPIAR-PANTALLA
    240.                DISPLAY "SE DETECTO UN ARCHIVO EXISTENTE, DE PROCEDER EL"
    241.                AT LINE 1 COL 1 WITH BACKGROUND-COLOR 6
    242.                " ARCHIVO ACTUAL SERA ELIMINADO" AT LINE 1 COL 48
    243.                                WITH BACKGROUND-COLOR 6
    244.                DISPLAY "ELIMINAR(1)|SALIR AL MENU(0) :" AT LINE 10 COL 1
    245.                                                    WITH REVERSE-VIDEO
    246.                ACCEPT ELIMINAR-OPC AT LINE 10 COL 31
    247.                EVALUATE ELIMINAR-OPC
    248.                    WHEN 1
    249.                    PERFORM CERRAR-ARCHIVO
    250.                    OPEN OUTPUT REG-LIBROS
    251.                    PERFORM CERRAR-ARCHIVO
    252.                    PERFORM LIMPIAR-PANTALLA
    253.                    DISPLAY "ARCHIVO CREADO CON EXITO."
    254.                                                WITH BACKGROUND-COLOR 2
    255.                    ACCEPT OPC AT LINE 1 COL 27
    256.                    WHEN 0 PERFORM CERRAR-ARCHIVO EXIT
    257.            ELSE
    258.                OPEN OUTPUT REG-LIBROS
    259.                CLOSE REG-LIBROS
    260.                PERFORM LIMPIAR-PANTALLA
    261.                DISPLAY "ARCHIVO CREADO CON EXITO."
    262.                                                WITH BACKGROUND-COLOR 2
    263.                ACCEPT OPC AT LINE 1 COL 27
    264.            END-IF.
    265.  
    266.        BUSCAR-LIBRO.
    267.            PERFORM LIMPIAR-PANTALLA.
    268.            PERFORM ABRIR-ARCHIVO-INPUT.
    269.            MOVE SPACES TO DATOS-LIBRO.
    270.            
    271.            IF ESTA-REG
    272.                DISPLAY "MENU DE BUSQUEDA" AT LINE 1 COL 1
    273.                                        WITH REVERSE-VIDEO
    274.                DISPLAY "(I)Busqueda por id" AT LINE 3 COL 1
    275.                DISPLAY "(N)Busqueda por nombre" AT LINE 4 COL 1
    276.                DISPLAY "(E)Busqueda por editorial" AT LINE 5 COL 1
    277.                DISPLAY "Ingrese opcion( )" AT LINE 7 COL 1
    278.                                        WITH REVERSE-VIDEO
    279.                ACCEPT BUSCAR-OPC AT LINE 7 COL 16
    280.                IF BUSCAR-OPC EQUALS "i" MOVE "I" TO BUSCAR-OPC END-IF
    281.                IF BUSCAR-OPC EQUALS "n" MOVE "N" TO BUSCAR-OPC END-IF
    282.                IF BUSCAR-OPC EQUALS "e" MOVE "E" TO BUSCAR-OPC END-IF
    283.                
    284.                EVALUATE BUSCAR-OPC
    285.                WHEN "I"
    286.                
    287.                WHEN "N"
    288.                
    289.                WHEN "E"
    290.                PERFORM BUSCAR-NOMBRE
    291.                END-EVALUATE
    292.                
    293.                
    294.                
    295.                
    296.                
    297.            ELSE
    298.                DISPLAY "ERROR, NO EXISTE UN ARCHIVO DE REGISTROS"
    299.                                  AT LINE 1 COL 1 WITH BACKGROUND-COLOR 4
    300.                ACCEPT OPC AT LINE 1 COL 43
    301.            END-IF.
    302.      *************************************************************************        
    303.      *BLOQUE DE CODIGO DE BUSQUEDAS
    304.      *************************************************************************        
    305.        BUSCAR-NOMBRE.
    306.            PERFORM LIMPIAR-PANTALLA.
    307.            PERFORM ABRIR-ARCHIVO-INPUT.
    308.            MOVE SPACES TO DATOS-LIBRO.
    309.            DISPLAY "Titulo:   " AT LINE 2 COL 1 WITH REVERSE-VIDEO
    310.            DISPLAY "---------------------------------------------------"
    311.                                                AT LINE 3 COL 1.
    312.            
    313.            DISPLAY
    314.                "ID |TITULO            |EDITORIAL         |ESTADO     "
    315.                                    WITH REVERSE-VIDEO AT LINE 3 COL 1.
    316.            ACCEPT NOMBRE AT LINE 2 COL 14.
    317.            
    318.            
    319.            START REG-LIBROS KEY IS = NOMBRE.
    320.            READ REG-LIBROS END-READ
    321.            DISPLAY DATOS-LIBRO AT LINE 4 COL 1
    322.            ACCEPT OPC AT LINE 5  COL 1.
    323.            
    324.            
    325.      *************************************************************************
    326.        LIMPIAR-PANTALLA.
    327.            PERFORM VARYING N FROM 01 BY 1 UNTIL N>24
    328.                DISPLAY LIMPIAR AT LINE N COLUMN 1
    329.            END-PERFORM.
    330.                
    331.        ABRIR-ARCHIVO-INPUT.
    332.            OPEN INPUT REG-LIBROS.
    333.  
    334.        ABRIR-IO-ARCHIVO.
    335.            OPEN I-O REG-LIBROS.
    336.  
    337.        CERRAR-ARCHIVO.
    338.            CLOSE REG-LIBROS.

    BLOQUE DE CODIGO ESPECIFICO:

    COBOL Código:
    1.   BUSCAR-NOMBRE.
    2.            PERFORM LIMPIAR-PANTALLA.
    3.            PERFORM ABRIR-ARCHIVO-INPUT.
    4.            MOVE SPACES TO DATOS-LIBRO.
    5.            DISPLAY "Titulo:   " AT LINE 2 COL 1 WITH REVERSE-VIDEO
    6.            DISPLAY "---------------------------------------------------"
    7.                                                AT LINE 3 COL 1.
    8.            
    9.            DISPLAY
    10.                "ID |TITULO            |EDITORIAL         |ESTADO     "
    11.                                    WITH REVERSE-VIDEO AT LINE 3 COL 1.
    12.            ACCEPT NOMBRE AT LINE 2 COL 14.
    13.            
    14.            
    15.            START REG-LIBROS KEY IS = NOMBRE.
    16.            READ REG-LIBROS END-READ
    17.            DISPLAY DATOS-LIBRO AT LINE 4 COL 1
    18.            ACCEPT OPC AT LINE 5  COL 1.

    Utilizé la misma logica para buscar por una key numerica, que funciona perfecto pero no con la secondary key NOMBRE

    0 Not allowed!

  2. #2
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    418
    Última visita
    16.05.2024

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @Marengo97, más o menos te lo dije en otro post.


    Metidos en el tema, suponte que deseas seleccionar un intevalo de libros:

    accept nombre-desde
    accept nombre-hasta

    COBOL Código:
    1. VER-LIBROS.
    2.            PERFORM LIMPIAR-PANTALLA
    3.            PERFORM ABRIR-Input-ARCHIVO
    4.            IF F-NOEXISTE-REG THEN
    5.              PERFORM LIMPIAR-PANTALLA
    6.              DISPLAY "ERROR, NO EXISTE UN ARCHIVO DE REGISTROS" AT LINE 1
    7.                                                            COL 1
    8.                                                            
    9.              DISPLAY "PRESIONE ENTER PARA VOLVER AL MENU()" AT LINE 10
    10.                                                            COL 1
    11.              ACCEPT OPC AT LINE  11 COL 36
    12.            ELSE
    13.                PERFORM LIMPIAR-PANTALLA
    14.  
    15.                move nombre-desde to  nombre
    16.                if nombre-hasta = " " then move hight-values to nombre-hasta end-if
    17.  
    18.                start reg-libros key is >= nombre end-start
    19.                READ REG-LIBROS next record end-read
    20.  
    21.               PERFORM VARYING N FROM 1 BY 1 UNTIL fin-reg or nombre > nombre-hasta
    22.                     DISPLAY DATOS-LIBRO AT LINE N COL 1
    23.                     READ REG-LIBROS next record end-read
    24.              END-PERFORM
    25.              ADD 1 TO N
    26.              DISPLAY "PRESIONE ENTER PARA REGRESAR AL MENU" AT LINE N
    27.                                                           COL 1
    28.            ACCEPT OPC AT LINE 15
    29.            PERFORM CERRAR-ARCHIVO
    30.            END-IF.



    Se pueden hacer cosas interesantes como buscar mayúsculas y minúsculas, e incluso que contengan una cadena, "luna", "árbol".

    - - - Updated - - -

    Otra cosa.
    COBOL Código:
    1.  
    2.   SELECT REG-LIBROS ASSIGN TO "REGISTRO-LIBROS.DAT"
    3.                                ORGANIZATION IS INDEXED
    4.                                RECORD KEY IS LIBRO-ID
    5.                                ALTERNATE RECORD KEY IS NOMBRE with duplicates
    6.                                ALTERNATE RECORD KEY IS EDITORIAL With duplicates
    7.                                ACCESS MODE IS DYNAMIC
    8.                                FILE STATUS FS-REGISTRO-LIBROS.
    9.  
    10.  

    Ya que la editorial se puede repetir

    0 Not allowed!
    Última edición por Josber; 04.08.2023 a las 10:29 Razón: Utiliza el resalte de lenguaje

  3. #3
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    No logro que funcione, no entiendo bien como funciona, debo de hacer un desde-nombre, hasta-nombre para recorrer ? Algo estoy pasando de alto, le dejo el bloque de codigo aunque lo modifique muchas veces sin exito
    COBOL Código:
    1.   BUSCAR-NOMBRE.
    2.            PERFORM LIMPIAR-PANTALLA.
    3.            PERFORM ABRIR-ARCHIVO-INPUT.
    4.            MOVE SPACES TO DATOS-LIBRO.
    5.            DISPLAY "Titulo:   " AT LINE 2 COL 1 WITH REVERSE-VIDEO
    6.            DISPLAY "---------------------------------------------------"
    7.                                                AT LINE 3 COL 1.
    8.  
    9.            DISPLAY
    10.                "ID |TITULO            |EDITORIAL         |ESTADO     "
    11.                                    WITH REVERSE-VIDEO AT LINE 3 COL 1.
    12.            ACCEPT AUX-NOMBRE AT LINE 2 COL 14.
    13.            MOVE AUX-NOMBRE TO HASTA-NOMBRE
    14.            DISPLAY NOMBRE
    15.            START REG-LIBROS KEY IS >= NOMBRE
    16.            READ REG-LIBROS NEXT RECORD END-READ
    17.            PERFORM VARYING N FROM 01 BY 1 UNTIL FIN-REG
    18.                                           OR NOMBRE > HASTA-NOMBRE
    19.            READ REG-LIBROS NEXT RECORD END-READ
    20.            DISPLAY DATOS-LIBRO AT LINE N COL 1
    21.            END-PERFORM
    22.            ACCEPT OPC AT LINE 5  COL 1.

    0 Not allowed!

  4. #4
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    418
    Última visita
    16.05.2024

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @Marengo97, puedes hacer una consulta desde hasta o bien puedes hacer una consulta que contenga una palabra o un string.

    Eso ya depende de de lo que tú quieras hacer

    - - - Updated - - -

    Yo para ciertas consultas o listados pido un intervalo desde hasta.

    Para otro tipo de consulta pido que contenga una palabra o un conjunto de palabras.

    Claro está , cada cosa hay que implementarla

    0 Not allowed!

  5. #5
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    Seria mucha molestia si lo hiciera por mi para poder verlo? Se me acabaron las opciones, no lo puedo hacer funcionar, me muestra todo en espacios o todo en espacios vacios excepto en el area de NOMBRE, hagalo a su gusto quiero ver como debe de hacerse correctamente. Gracias de todas formas.

    0 Not allowed!

  6. #6
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    418
    Última visita
    16.05.2024

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @Marengo97, la opción del post 2 debe funcionar con nombre desde nombre hasta.

    Ponlo en tu código y si no te funciona ponlo aquí para que lo veamos y poder solucionarlo

    0 Not allowed!

  7. #7
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    Asi lo tengo ahora:
    COBOL Código:
    1.  BUSCAR-NOMBRE.
    2.            PERFORM LIMPIAR-PANTALLA.
    3.            PERFORM ABRIR-ARCHIVO-INPUT.
    4.            MOVE SPACES TO DATOS-LIBRO
    5.            DISPLAY "Titulo:   " AT LINE 2 COL 1 WITH REVERSE-VIDEO
    6.            DISPLAY "---------------------------------------------------"
    7.                                                AT LINE 3 COL 1.
    8.  
    9.            DISPLAY
    10.                "ID |TITULO            |EDITORIAL         |ESTADO     "
    11.                                    WITH REVERSE-VIDEO AT LINE 3 COL 1.
    12.            ACCEPT DESDE-NOMBRE AT LINE 2 COL 14.
    13.            MOVE DESDE-NOMBRE TO NOMBRE.
    14.            MOVE NOMBRE TO HASTA-NOMBRE.
    15.            START REG-LIBROS KEY IS >= NOMBRE END-START.
    16.            READ REG-LIBROS NEXT RECORD END-READ.
    17.            PERFORM VARYING N FROM 01 BY 1 UNTIL FIN-REG OR
    18.                                           NOMBRE > HASTA-NOMBRE
    19.                DISPLAY DATOS-LIBRO AT LINE 4 COL 1
    20.  
    21.                READ REG-LIBROS NEXT RECORD END-READ
    22.            END-PERFORM.
    23.                
    24.                ACCEPT OPC AT LINE 10 COL 1.
    25.            PERFORM CERRAR-ARCHIVO.

    Te adjunto 3 capturas de pantallas:
    Estas dos primeras son con "READ REG-LIBROS END-READ" en la linea 16
    Sin título2.png
    Sin título3.png
    Muestra registros erroneos o simplemente espacios vacios, creo que los campos estan en sus valores por default.
    Esta tercera es con "READ REG-LIBROS NEXT RECORD END-READ" tambien en la linea 16Sin titulo4.png
    Aca, me muestra todo espacios vacios no importa cual registro sea.

    0 Not allowed!

  8. #8
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    418
    Última visita
    16.05.2024

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    @Marengo97, he probado el código y funciona perfectamente.

    Si te saca campos en blanco es porque no metiste nada.

    Lo que hace este bucle es:

    - pedir nombre
    - hacer un start por ese nombre
    - leer el primero y sacar siguientes que sean iguales a ese nombre.

    Prueba a inicializar el fichero y meter todos los campos bien.

    0 Not allowed!

  9. #9
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    418
    Última visita
    16.05.2024

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado
    ¡Solución!1 usuarios han marcado el post como Solución

    @Marengo97, mira esto.

    Te he cambiado el parrafo de registrar libro porque no funcionaba en el caso de que exista un libro.

    Cuando se teclee un libro, hay que leerlo para sacar la informacion. De lo contrario si bajas con intro se reescribe el libro pero con datos en blanco.

    al final he añadido una cosa mas elegante, hacias un write y si da error un rewrite. Para mi es mejor si existia rewrite y si no write.


    COBOL Código:
    1.        IDENTIFICATION DIVISION.
    2.  
    3.        PROGRAM-ID.                 LIBRERIA.
    4.        AUTHOR.                     LUCAS GALEANO.
    5.        DATE-WRITTEN                9/7/2023.
    6.  
    7.        ENVIRONMENT DIVISION.
    8.        INPUT-OUTPUT SECTION.
    9.        FILE-CONTROL.
    10.            SELECT REG-LIBROS ASSIGN TO "REGISTRO-LIBROS.DAT"
    11.                                ORGANIZATION IS INDEXED
    12.                                RECORD KEY IS LIBRO-ID
    13.                                ALTERNATE RECORD KEY IS NOMBRE
    14.                                ALTERNATE RECORD KEY IS EDITORIAL
    15.                                ACCESS MODE IS DYNAMIC
    16.                                FILE STATUS FS-REGISTRO-LIBROS.
    17.  
    18.  
    19.        DATA DIVISION.
    20.        FILE SECTION.
    21.  
    22.        FD REG-LIBROS.
    23.  
    24.        01 DATOS-LIBRO.
    25.            05 LIBRO-ID PIC 999     VALUE ZEROS.
    26.            05 NOMBRE   PIC X(20)   VALUE SPACES.
    27.            05 EDITORIAL PIC X(20)  VALUE SPACES.
    28.            05 ESTADO   PIC X(12)   VALUE SPACES.
    29.      *05 FECHA-INGRESO.
    30.      *     10 DIA  PIC 99 VALUE ZEROS.
    31.      *     10 MES  PIC X(10) VALUE SPACES.
    32.      *     10 AÑO  PIC 9999 VALUE ZEROS.
    33.      * 05 FECHA-ALQUILER.
    34.      *     10 DDIA PIC 99 VALUE ZEROS.
    35.      *     10 MMES PIC X(10) VALUE SPACES.
    36.      *     10 AAÑO PIC 9999 VALUE ZEROS.
    37.  
    38.        WORKING-STORAGE SECTION.
    39.      *Codigos de error del archivo.
    40.        01 FS-REGISTRO-LIBROS PIC XX.
    41.            88 ESTA-REG         VALUE "00" "02".
    42.            88 N-ESTA-REG       VALUE "23".
    43.            88 F-NOEXISTE-REG   VALUE "35".
    44.            88 FIN-REG          VALUE "10".
    45.            88 F-ABIERTO        VALUE "12".
    46.      *Variables del programa.
    47.        77 CONTINUAR PIC X.
    48.        77 CONTINUAR-REG PIC X.
    49.        77 ELIMINAR-OPC  PIC X.
    50.        77 BUSCAR-OPC    PIC X.    
    51.        77 OPC       PIC X.
    52.        77 LIMPIAR   PIC X(80) VALUE SPACES.
    53.        77 LIMPIAR-LINEA PIC X(80) VALUE SPACES.
    54.        77 N         PIC 99.
    55.        77 AUX-ID    PIC 999.
    56.        77 AUX-NOMBRE PIC X(20).
    57.        01 DESDE-NOMBRE PIC X(20).
    58.        01 HASTA-NOMBRE PIC X(20).
    59.  
    60.        PROCEDURE DIVISION.
    61.        DECLARATIVES.
    62.      *Estados de error del archivo
    63.        FILE-ERROR SECTION.
    64.            USE AFTER STANDARD ERROR PROCEDURE ON REG-LIBROS.
    65.            IF FS-REGISTRO-LIBROS EQUALS "35" THEN
    66.                SET F-NOEXISTE-REG TO TRUE
    67.            END-IF.
    68.        END DECLARATIVES.
    69.      *LOGICA PRINCIPAL
    70.        MENU.
    71.            PERFORM UNTIL CONTINUAR = "N"
    72.            PERFORM LIMPIAR-PANTALLA
    73.            DISPLAY "ADMINISTRADOR DE CATALOGO" AT LINE 1 COL 1 WITH
    74.                                                            REVERSE-VIDEO
    75.            DISPLAY " "                         AT LINE 3 COL 1
    76.            DISPLAY "1.Registrar, Editar, Remplazar libro" AT LINE 4
    77.                                                            COL 1
    78.            DISPLAY "2.Eliminar libro"          AT LINE 5 COL 1
    79.            DISPLAY "3.Ver catalogo"            AT LINE 6 COL 1
    80.            DISPLAY "4.Crear nuevo registro"    AT LINE 7 COL 1
    81.            DISPLAY "5.Buscar libro"            AT LINE 8  
    82.            DISPLAY "0.Salir"                   AT LINE 9 COL 1
    83.            DISPLAY " "                         AT LINE 10 COL 1
    84.            DISPLAY "Ingrese tecla ( )"         AT LINE 11 COL 1 WITH
    85.                                                            REVERSE-VIDEO
    86.            ACCEPT OPC                          AT LINE 11 COL 16 WITH
    87.                                                PROMPT UNDERLINE
    88.            EVALUATE OPC
    89.            WHEN 1 PERFORM REGISTRAR-LIBRO
    90.            WHEN 2 PERFORM ELIMINAR-LIBRO
    91.            WHEN 3 PERFORM VER-LIBROS
    92.            WHEN 4 PERFORM CREAR-ARCHIVO
    93.            WHEN 5 PERFORM BUSCAR-LIBRO
    94.            WHEN 0 MOVE "N" TO CONTINUAR
    95.            END-EVALUATE
    96.            END-PERFORM.
    97.            CLOSE REG-LIBROS.
    98.            STOP RUN.
    99.  
    100.  
    101.        REGISTRAR-LIBRO.
    102.            MOVE SPACES TO DATOS-LIBRO.
    103.            PERFORM LIMPIAR-PANTALLA.
    104.            MOVE "S" TO CONTINUAR-REG.
    105.      *************************************************************************    
    106.      *INTERFAZ MENU DE INGRESO DE DATOS
    107.      *************************************************************************
    108.            DISPLAY "Numero de serie:" AT LINE 1 COL 1.
    109.            DISPLAY "Nombre:"       AT LINE 2 COL 1.
    110.            DISPLAY "Editorial:"    AT LINE 3 COL 1.
    111.            DISPLAY "Estado:"       AT LINE 4 COL 1.
    112.            DISPLAY
    113.            "presione ENTER sin ingresar datos para salir al menu"
    114.                                                AT LINE 7 COL 12
    115.                                                      WITH REVERSE-VIDEO.
    116.  
    117.  
    118.            DISPLAY "Numero de serie    :" AT LINE 1 COL 1 WITH
    119.                                                           REVERSE-VIDEO.
    120.            initialize DATOS-LIBRO                                                
    121.            ACCEPT LIBRO-ID WITH PROMPT UNDERLINE UPDATE AT LINE 1
    122.                                                        COL 25.
    123.            
    124.            IF LIBRO-ID EQUALS 000 MOVE "N" TO CONTINUAR-REG END-IF.
    125.  
    126.  
    127.            IF CONTINUAR-REG EQUALS "S"
    128.               PERFORM ABRIR-IO-ARCHIVO                                          
    129.               read REG-LIBROS end-read
    130.               if ESTA-REG THEN
    131.                   DISPLAY NOMBRE              AT LINE 2 COL 25
    132.                   DISPLAY EDITORIAL           AT LINE 3 COL 25
    133.                   DISPLAY ESTADO              AT LINE 4 COL 25      
    134.               end-if
    135.               DISPLAY "Numero de serie    :" AT LINE 1 COL 1
    136.               DISPLAY LIBRO-ID            AT LINE 1 COL 25
    137.  
    138.               DISPLAY "Nombre    :"     AT LINE 2 COL 1
    139.                                             WITH REVERSE-VIDEO
    140.               ACCEPT NOMBRE               AT LINE 2 COL 25
    141.               DISPLAY "Nombre:    "       AT LINE 2 COL 1
    142.               DISPLAY NOMBRE              AT LINE 2 COL 25
    143.  
    144.               DISPLAY "Editorial    :"  AT LINE 3 COL 1
    145.                                             WITH REVERSE-VIDEO
    146.               ACCEPT EDITORIAL            AT LINE 3 COL 25
    147.               DISPLAY "Editorial    :"    AT LINE 3 COL 1
    148.               DISPLAY EDITORIAL           AT LINE 3 COL 25
    149.  
    150.               DISPLAY "Estado    :"     AT LINE 4 COL 1
    151.                                             WITH REVERSE-VIDEO
    152.               ACCEPT ESTADO               AT LINE 4 COL 25
    153.               DISPLAY "Estado    :"       AT LINE 4 COL 1
    154.               DISPLAY ESTADO              AT LINE 4 COL 25
    155.      *************************************************************************
    156.    
    157.              if N-ESTA-REG then
    158.               WRITE DATOS-LIBRO end-write
    159.              else
    160.                REWRITE DATOS-LIBRO END-REWRITE
    161.              end-if    
    162.              if not ESTA-REG then
    163.                    PERFORM LIMPIAR-PANTALLA
    164.                    DISPLAY "ERROR AL REGISTRAR DATOS" AT LINE 1 COL 1
    165.                                            WITH BACKGROUND-COLOR 4
    166.              end-if
    167.             PERFORM CERRAR-ARCHIVO
    168.            END-IF.
    169.            
    170.  
    171.        VER-LIBROS.
    172.            PERFORM ABRIR-ARCHIVO-INPUT.
    173.            IF F-NOEXISTE-REG THEN
    174.                PERFORM LIMPIAR-PANTALLA
    175.                DISPLAY "ERROR, NO EXISTE UN ARCHIVO DE REGISTROS"
    176.                        WITH BACKGROUND-COLOR 4 AT LINE 1 COL 1
    177.  
    178.  
    179.  
    180.                DISPLAY "Presione ENTER para salir al menu"
    181.                                                AT LINE 7 COL 12 WITH
    182.                                                REVERSE-VIDEO
    183.                ACCEPT OPC AT LINE  10 COL 34
    184.            ELSE
    185.                PERFORM LIMPIAR-PANTALLA
    186.                INITIALIZE LIBRO-ID
    187.                START REG-LIBROS KEY IS >= LIBRO-ID END-START
    188.                READ REG-LIBROS NEXT RECORD END-READ
    189.                DISPLAY
    190.                "ID |TITULO            |EDITORIAL          |ESTADO     "
    191.                WITH REVERSE-VIDEO AT LINE 1 COL 1
    192.                PERFORM VARYING N FROM 02 BY 1 UNTIL FIN-REG
    193.                    DISPLAY DATOS-LIBRO AT LINE N COL 1
    194.                    READ REG-LIBROS NEXT RECORD END-READ
    195.                END-PERFORM
    196.                ADD 1 TO N
    197.                DISPLAY "Presione ENTER para salir al menu"
    198.                                                AT LINE N COL 1 WITH
    199.                                                REVERSE-VIDEO
    200.                ACCEPT OPC AT LINE N COL 34
    201.                PERFORM CERRAR-ARCHIVO
    202.            END-IF.
    203.  
    204.  
    205.        ELIMINAR-LIBRO.
    206.            PERFORM ABRIR-IO-ARCHIVO.
    207.            PERFORM LIMPIAR-PANTALLA.
    208.            MOVE SPACES TO DATOS-LIBRO
    209.  
    210.            DISPLAY "Indique por id el libro que desea eliminar:"
    211.            WITH REVERSE-VIDEO AT LINE 1 COL 1.
    212.            DISPLAY "Presione ENTER para salir al menu"
    213.            WITH REVERSE-VIDEO AT LINE 7 COL 12.
    214.                      
    215.            ACCEPT LIBRO-ID AT LINE 1 COL 46 WITH PROMPT UNDERLINE UPDATE.
    216.            
    217.            IF LIBRO-ID NOT EQUALS 000    
    218.            
    219.            PERFORM LIMPIAR-PANTALLA
    220.  
    221.            START REG-LIBROS KEY IS = LIBRO-ID
    222.            READ REG-LIBROS END-READ
    223.            IF ESTA-REG
    224.                DISPLAY
    225.                "ID |TITULO            |EDITORIAL         |ESTADO     "
    226.                                    WITH REVERSE-VIDEO AT LINE 1 COL 1
    227.                DISPLAY DATOS-LIBRO AT LINE 2 COL 1
    228.                DISPLAY "ELIMINAR(1)|VOLVER(0) :" AT LINE 5 COL 1
    229.                                                    WITH REVERSE-VIDEO
    230.                
    231.                ACCEPT ELIMINAR-OPC AT LINE 5 COL 25
    232.                EVALUATE ELIMINAR-OPC
    233.                    WHEN 1
    234.                    DISPLAY LIMPIAR-LINEA AT LINE 10 COL 1
    235.                    DELETE REG-LIBROS INVALID KEY
    236.                        DISPLAY "ERROR AL ELIMINAR" AT LINE 5 COL 1
    237.                    END-DELETE
    238.                    DISPLAY "REGISTRO ELIMINADO CON EXITO" AT LINE 5
    239.                                                 COL 1
    240.                                                 WITH BACKGROUND-COLOR 2
    241.                            ACCEPT OPC AT LINE 5 COL 29
    242.                    WHEN 0 PERFORM ELIMINAR-LIBRO
    243.            ELSE
    244.                DISPLAY "EL REGISTRO NO EXISTE" AT LINE 1 COL 1
    245.                                            WITH BACKGROUND-COLOR 4
    246.                            ACCEPT OPC AT LINE 1 COL 22
    247.            END-IF
    248.            
    249.            END-IF.
    250.            PERFORM CERRAR-ARCHIVO.
    251.            
    252.  
    253.        CREAR-ARCHIVO.
    254.            PERFORM ABRIR-IO-ARCHIVO
    255.            IF NOT F-NOEXISTE-REG THEN
    256.                PERFORM LIMPIAR-PANTALLA
    257.                DISPLAY "SE DETECTO UN ARCHIVO EXISTENTE, DE PROCEDER EL"
    258.                AT LINE 1 COL 1 WITH BACKGROUND-COLOR 6
    259.                " ARCHIVO ACTUAL SERA ELIMINADO" AT LINE 1 COL 48
    260.                                WITH BACKGROUND-COLOR 6
    261.                DISPLAY "ELIMINAR(1)|SALIR AL MENU(0) :" AT LINE 10 COL 1
    262.                                                    WITH REVERSE-VIDEO
    263.                ACCEPT ELIMINAR-OPC AT LINE 10 COL 31
    264.                EVALUATE ELIMINAR-OPC
    265.                    WHEN 1
    266.                    PERFORM CERRAR-ARCHIVO
    267.                    OPEN OUTPUT REG-LIBROS
    268.                    PERFORM CERRAR-ARCHIVO
    269.                    PERFORM LIMPIAR-PANTALLA
    270.                    DISPLAY "ARCHIVO CREADO CON EXITO."
    271.                                                WITH BACKGROUND-COLOR 2
    272.                    ACCEPT OPC AT LINE 1 COL 27
    273.                    WHEN 0 PERFORM CERRAR-ARCHIVO EXIT
    274.            ELSE
    275.                OPEN OUTPUT REG-LIBROS
    276.                CLOSE REG-LIBROS
    277.                PERFORM LIMPIAR-PANTALLA
    278.                DISPLAY "ARCHIVO CREADO CON EXITO."
    279.                                                WITH BACKGROUND-COLOR 2
    280.                ACCEPT OPC AT LINE 1 COL 27
    281.            END-IF.
    282.  
    283.        BUSCAR-LIBRO.
    284.            PERFORM LIMPIAR-PANTALLA.
    285.            PERFORM ABRIR-ARCHIVO-INPUT.
    286.            MOVE SPACES TO DATOS-LIBRO.
    287.            
    288.            IF ESTA-REG
    289.                DISPLAY "MENU DE BUSQUEDA" AT LINE 1 COL 1
    290.                                        WITH REVERSE-VIDEO
    291.                DISPLAY "(I)Busqueda por id" AT LINE 3 COL 1
    292.                DISPLAY "(N)Busqueda por nombre" AT LINE 4 COL 1
    293.                DISPLAY "(E)Busqueda por editorial" AT LINE 5 COL 1
    294.                DISPLAY "Ingrese opcion( )" AT LINE 7 COL 1
    295.                                        WITH REVERSE-VIDEO
    296.                ACCEPT BUSCAR-OPC AT LINE 7 COL 16
    297.                IF BUSCAR-OPC EQUALS "i" MOVE "I" TO BUSCAR-OPC END-IF
    298.                IF BUSCAR-OPC EQUALS "n" MOVE "N" TO BUSCAR-OPC END-IF
    299.                IF BUSCAR-OPC EQUALS "e" MOVE "E" TO BUSCAR-OPC END-IF
    300.                
    301.                EVALUATE BUSCAR-OPC
    302.                WHEN "I"
    303.                
    304.                WHEN "N"
    305.                
    306.                WHEN "E"
    307.                PERFORM BUSCAR-NOMBRE
    308.                END-EVALUATE
    309.                
    310.                
    311.                
    312.                
    313.                
    314.            ELSE
    315.                DISPLAY "ERROR, NO EXISTE UN ARCHIVO DE REGISTROS"
    316.                                  AT LINE 1 COL 1 WITH BACKGROUND-COLOR 4
    317.                ACCEPT OPC AT LINE 1 COL 43
    318.            END-IF.
    319.      *************************************************************************        
    320.      *BLOQUE DE CODIGO DE BUSQUEDAS
    321.      *************************************************************************        
    322.        BUSCAR-NOMBRE.
    323.              PERFORM LIMPIAR-PANTALLA.
    324.            PERFORM ABRIR-ARCHIVO-INPUT.
    325.            MOVE SPACES TO DATOS-LIBRO
    326.            DISPLAY "Titulo:   " AT LINE 2 COL 1 WITH REVERSE-VIDEO
    327.            DISPLAY "---------------------------------------------------"
    328.                                                AT LINE 3 COL 1.
    329.  
    330.            DISPLAY
    331.                "ID |TITULO            |EDITORIAL         |ESTADO     "
    332.                                    WITH REVERSE-VIDEO AT LINE 3 COL 1.
    333.            ACCEPT DESDE-NOMBRE AT LINE 2 COL 14.
    334.            MOVE DESDE-NOMBRE TO NOMBRE.
    335.            MOVE NOMBRE TO HASTA-NOMBRE.
    336.            START REG-LIBROS KEY IS >= NOMBRE END-START.
    337.            READ REG-LIBROS NEXT RECORD END-READ.
    338.            PERFORM VARYING N FROM 01 BY 1 UNTIL FIN-REG OR
    339.                                           NOMBRE > HASTA-NOMBRE
    340.                DISPLAY DATOS-LIBRO AT LINE 4 COL 1
    341.  
    342.                READ REG-LIBROS NEXT RECORD END-READ
    343.            END-PERFORM.
    344.                
    345.                ACCEPT OPC AT LINE 10 COL 1.
    346.            PERFORM CERRAR-ARCHIVO.
    347.      *************************************************************************
    348.        LIMPIAR-PANTALLA.
    349.            PERFORM VARYING N FROM 01 BY 1 UNTIL N>24
    350.                DISPLAY LIMPIAR AT LINE N COLUMN 1
    351.            END-PERFORM.
    352.                
    353.        ABRIR-ARCHIVO-INPUT.
    354.            OPEN INPUT REG-LIBROS.
    355.  
    356.        ABRIR-IO-ARCHIVO.
    357.            OPEN I-O REG-LIBROS.
    358.  
    359.        CERRAR-ARCHIVO.
    360.            CLOSE REG-LIBROS.
    361.            

    0 Not allowed!

  10. #10
      Acabo de llegar...
    M

    Registrado
    febrero de 2023
    Ubicación
    Buenos Aires
    Edad
    26
    Mensajes
    26
    Última visita
    22.11.2023

    Agradecimientos
     
    Recibidos
    0
    Enviados
    5

    Citaciones y menciones
     
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    Buenos dias Cantero, o buenas noches que aca esta por amanecer, si recien se me ocurrio la posibilidad de que el problema era el archivo...te explico, yo implemente las claves secundarias con un archivo YA PREVIAMENTE creado cuando solo utilizaba una MAIN KEY, o sea,LIBRO-ID, y jamas se me ocurrio que ese archivo previo entraria en conflicto si lo indexo con claves secundarias que previamente no declare en codigo, es decir los campos estaban pero no las llaves en el FILE CONTROL.....ahora funciona perfecto, no me la puedo creer.

    Gracias por la paciencia

    0 Not allowed!

Página 1 de 2 1 2 ÚltimoÚltimo

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. No puedo crear un archivo indexado
    Por CHITOBLA en el foro GnuCOBOL (OpenCOBOL)
    Respuestas: 42
    Último Mensaje: 07.12.2022, 10:34
  2. [Sintaxis] Crear archivo indexado desde un XLS
    Por Anthony en el foro AcuCobol
    Respuestas: 10
    Último Mensaje: 06.08.2019, 17:35
  3. [Sintaxis] Buscar un dato usando Control ctList
    Por Ciro en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 3
    Último Mensaje: 17.08.2017, 19:47
  4. [Sintaxis] Leer indexado hacía atrás por clave alterna
    Por Hrmcobol en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 1
    Último Mensaje: 10.11.2016, 13:35
  5. [Aporte] Numero de Registos en un Ficheiro indexado
    Por Rapinto en el foro Cocina PowerCOBOL
    Respuestas: 0
    Último Mensaje: 27.02.2015, 01:04

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •