Cobol en español
  Página de Inicio Recomiéndala Contáctame Usuarios en Linea
18
     Crea Una cuenta  
Video 1
Video 2
Video 3

Si te ha servido la web
o te han gustado los videos, colabora haciendo click en el botón.

MANUALES
TEMATICOS
BASES DE DATOS
COBOL / WINDOWS
COBOL / UNIX
HISTORIA /DOCS
 
BUSCADOR
PROGRAMANDO-Dos
TRUCOS
AÑO 2.000
TEORIA POWCOB-3
PROG. POWCOB-3
TEORIA POWCOB-5
PROG. POWCOB-5
OCX-ESCOBOL
RUTINAS/MANUALES
OCX / JUEGOS
HERRAMIENTAS
COMPILADORES
ENCUESTAS
ENLACES
FOROS
TOP 10

CHAT   Usuarios: 0
Trucos
TEMARIONúmeros Aleatorios
Sec. Escape a Impresoras
Imp. ¿Pantalla o Impresora?
Dibujar Cuadros o Líneas
Años Bisiestos
Ventana de Opciones
Campos Tipo Hora
Busqueda de Cadenas
Mandar un e-mail
Pequeño Editor Texto
Día de la Semana
Registros / Fichero
ListBox en modo caracter

Busqueda de Cadenas

(745 palabras totales en este texto)
(14972 Lecturas)   Versión Imprimible



Este truco es muy práctico y con el vamos a poder buscar dentro de los campos alfanuméricos, cadenas de datos que concuerden con lo que buscamos.

Yo lo utilizo para buscar asientos dentro de mi programa de contabilidad y os tengo que decir que el resultado es muy bueno. Para ello vamos a definir unas variables y dos tablas. En las variables guardaremos las posiciones desde y donde vamos a buscar y nos servirán como subíndices de las tablas. La técnica consiste en ir cogiendo nuestro campo por partes iguales a la cadena que buscamos e ir comparando. Veamos como realizarlo:

...
WORKING-STORAGE SECTION.
01   CADENA  PIC X(30).
(cadena a buscar).
01   MIRAC    PIC X(30).
01   MIROC    REDEFINES MIRAC.
      02   MC  PIC X OCCURS 30 TIMES.
(tabla que contendrá el campo donde buscaremos).
01   VALIC    PIC X(30).
01   VALOC   REDEFINES VALIC.
      02   VC  PIC X OCCURS 30 TIMES.
(tabla en la que nos apoyaremos para buscar).
01   P1        PIC 99.
01   P2        PIC 99.
01   P3        PIC 99.
01   P4        PIC 99.
01   TOPE    PIC 99.
...

PROCEDURE DIVISION.
INICIO.
...
(Partimos de que previamente hemos aceptado el campo CADENA, que contendrá precisamente eso, lo que deseamos buscar).
(La variable TOPE, tendrá la longitud de la cadena a buscar).
...
DIEZ.
(Suponemos que vamos a buscar en un fichero que se llama ARTICULOS).
     READ ARTICULOS NEXT RECORD AT END GO FIN.
(y que dispone de un campo para el nombre llamado ARTNOM).
     MOVE 0 TO P1 P2. 
     MOVE ARTNOM TO MIRAC.
(Movemos el nombre a la tabla).
     COMPUTE P4 = 30 - TOPE. (Calculamos hasta donde debemos de buscar, teniendo en cuenta que el campo NOMBRE tiene de longitud 30).

ONCE.
     INITIALIZE VALIC P2.
DOCE.
(Aquí vamos moviendo nuesto campo CADENA, por todas las posibilidades posibles).
     ADD 1 TO P2 IF P2 > TOPE GO TRECE.
     COMPUTE P3 = P1 + P2.
     MOVE MC (P3) TO VC (P2).
     GO DOCE.
TRECE.
(Aquí comparamos cada resultado con nuestra CADENA).
     IF CADENA = VALIC DISPLAY SPACES LINE 22 COL 33 
         SIZE 40 GO CATORCE.
(Hemos encontrado una coincidencia y nos vamos a CATORCE).
     ADD 1 TO P1 IF P1 > P4 NEXT SENTENCE ELSE GO ONCE.
     GO DIEZ.
CATORCE.
(Aquí haremos lo que corresponda al encontrar lo que buscabamos).
     ...
Lo que voy a hacer, para que se pueda ver mas claro, es ponerlo en la sección de Programando, dentro del programa paso a paso, y así lo podréis ver de una forma mas lógica.

   Inicio de Página   
Sitio desarrollado con PHP-Nuke. Todos los Derechos Reservados.
PHP-Nuke es un Software Libre realizado con licencia GNU/GPL.
Página creada en Junio de 1.998, con el proposito de difundir el lenguaje Cobol en nuestra lengua.
Andres Montes [98/11]