UNIDAD 5: REGISTROS Y ARCHIVOS SECUENCIALES

TEMA PERL 7: BUSQUEDA

En este TEMA PERL se analiza la busqueda de un registro o renglon determinado.

En este proceso el usuario del programa quiere que se despliegue un y solo un registro de informacion proporcionando un dato de busqueda generalmente la clave del registro.

Prog23.pl

#! /usr/bin/perl -w
# usando modulo o libreria CGI
use CGI;
# creando el OBJETO de tipo CGI
$q = new CGI;
# mandando servidor los encabezados de la pagina html
print $q->header;
print $q->start_html();
# creando una form o ventana
print $q->startform();
print "CLAVE A BUSCAR: ";
print $q->textfield('CLAVEBUSCAR','0', 5);
# creando un submit button
print $q->submit('BUSCAR');
# cerrando la forma
print $q->endform();
# cerrando html
print $q->end_html;
if ( $q->param('BUSCAR')) {
# empezando una tabla html
print "<HTML><TABLE Border=10 CellPadding=5><TR>";
# construyendo los encabezados de la tabla
print "<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=Red>EDAD</th></TR>";
# abriendo archivo
open(ARCHIVO, "DATOS.DAT") || die "No se pudo abrir archivo";
while(!eof(ARCHIVO)){
# leyendo los campos
$clave=<ARCHIVO>;
$nombre=<ARCHIVO>;
$edad=<ARCHIVO>;
if ( $q->param('CLAVEBUSCAR') == $clave) {
print "<TR><TD>"."$clave"."</TD><TD>"."$nombre"."</TD><TD>"."$edad"."</TD></TR>";
};};
print "</TABLE>";
close(ARCHIVO);
};

corrida:

image264.jpg

Recordar que la caracteristica principal de un archivo secuencial, es que no es posible acceder o accesar a un registro o renglon especifico o determinado sino que se debera recorrer todos los n-1 renglones anteriores.

Esta situacion se da porque al construir un registro cualquiera con una monton de campos strings a la hora de almacenar dichos registros, estos registros tendran tamanos diferentes, esta es la razon principal por la cual al buscar un registro especifico se tiene que recorrer y validar todos los registros anteriores.

En el programa ejemplo se esta usando un ciclo while(!eof(ARCHIVO)) para recorrer todos los registros del archivo (eof=end of file), por supuesto que si se tiene un archivo con 5000 registro y el buscado es el 4500 al menos se se tendra que recorrer todos los 4499 registros anteriores.

TAREAS PROGRAMACION PERL MYSQL

Construirles programas de busquedas a los archivos ya construidos.

Politica de Privacidad