@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
Código COBOL:
VER-LIBROS.
PERFORM LIMPIAR-PANTALLA
PERFORM ABRIR-Input-ARCHIVO
IF F-NOEXISTE-REG THEN
PERFORM LIMPIAR-PANTALLA
DISPLAY "ERROR, NO EXISTE UN ARCHIVO DE REGISTROS" AT LINE 1
COL 1
DISPLAY "PRESIONE ENTER PARA VOLVER AL MENU()" AT LINE 10
COL 1
ACCEPT OPC AT LINE 11 COL 36
ELSE
PERFORM LIMPIAR-PANTALLA
move nombre-desde to nombre
if nombre-hasta = " " then move hight-values to nombre-hasta end-if
start reg-libros key is >= nombre end-start
READ REG-LIBROS next record end-read
PERFORM VARYING N FROM 1 BY 1 UNTIL fin-reg or nombre > nombre-hasta
DISPLAY DATOS-LIBRO AT LINE N COL 1
READ REG-LIBROS next record end-read
END-PERFORM
ADD 1 TO N
DISPLAY "PRESIONE ENTER PARA REGRESAR AL MENU" AT LINE N
COL 1
ACCEPT OPC AT LINE 15
PERFORM CERRAR-ARCHIVO
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.
Código COBOL:
SELECT REG-LIBROS ASSIGN TO "REGISTRO-LIBROS.DAT"
ORGANIZATION IS INDEXED
RECORD KEY IS LIBRO-ID
ALTERNATE RECORD KEY IS NOMBRE with duplicates
ALTERNATE RECORD KEY IS EDITORIAL With duplicates
ACCESS MODE IS DYNAMIC
FILE STATUS FS-REGISTRO-LIBROS.
Ya que la editorial se puede repetir