ProgramacionFacil

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.

 




 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
Politica de Privacidad