UNIDAD 5: REGISTROS Y ARCHIVOS SECUENCIALES

TEMA PERL 11: EDICION DE REGISTROS

Modificar o editar un registro es uno de los procesos mas comunes con archivos en disco, generalmente despues de un fuerte proceso de captura de registros, una revision o consulta general muestra muchos de ellos con errores de captura.

El modelo de programacion cliente-servidor que se esta estudiando, facilita mucho este proceso de edicion.

1.- la forma html pide la clave del registro a editar.

2.- el primer evento cpp-cgi es el programa normal de busqueda que ya se construyo en temas anteriores, pero al desplegar el registro se debera construir una forma html completa (llamada forma o pagina dinamica) que incluya los textboxs cargados con los datos del registro, observar que en general este programa lo que hace es construir una segunda forma html con los datos cargados del registro.

3.- el segundo evento cpp-cgi es activado y toma los datos de la forma dinamica , los almacena en un registro temporal que va comparando contra el registro original que se va leyendo del archivo original y cuando la clave del registro original y la clave de registro temporal coinciden, entonces es el registro temporal quien se almacena o graba en el archivo temporal.

Prog27.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();
print $q->hr();
# creando una form o ventana
print $q->startform();
print "CLAVE A EDITAR: ";
print $q->textfield('CLAVE1','', 5);
print $q->br();
# creando un submit button
print $q->submit('BUSCAR');
# cerrando la forma
print $q->endform();
print $q->hr();
# cerrando html
print $q->end_html;
if ( $q->param('BUSCAR')) {
print $q->startform();
# 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('CLAVE1') == $clave) {
print "CLAVE A EDITAR: ";
print $q->textfield('CLAVE',$clave, 5);print $q->br();
print "NOMBRE A EDITAR: ";
print $q->textfield('NOMBRE',$nombre, 30);print $q->br();
print "EDAD A EDITAR: ";
print $q->textfield('EDAD',$edad, 5);print $q->br();
print $q->submit('EDITAR');
};};
close(ARCHIVO);
print $q->endform();
};
if ( $q->param('EDITAR')) {
# abriendo archivo original para lectura
open(ARCHIVO1, "DATOS.DAT") || die "No se pudo abrir archivo";
# abriendo archivo temporal para escritura
open(ARCHIVO2, "+>> TEMP.DAT") || die "No se pudo abrir archivo";
while(!eof(ARCHIVO1)){
# leyendo campos archivo original
$clave=<ARCHIVO1>;
$nombre=<ARCHIVO1>;
$edad=<ARCHIVO1>;
# condicion de sustitucion
if ( $clave != $q->param('CLAVE') )
{
# grabar al archivo temporal
print ARCHIVO2 "$clave";
print ARCHIVO2 "$nombre";
print ARCHIVO2 "$edad";
}
else{
$clave=$q->param('CLAVE');
$nombre=$q->param('NOMBRE');
$edad=$q->param('EDAD');
print ARCHIVO2 "$clave \n";
print ARCHIVO2 "$nombre \n";
print ARCHIVO2 "$edad \n";
};
};
# cerrando ambos archivos
close(ARCHIVO1);
close(ARCHIVO2);
# eliminando archivo original
unlink "DATOS.DAT";
rename("TEMP.DAT","DATOS.DAT");
print "registro editado";
};

corrida:

image269.jpg

corrida prog22

image270.jpg

TAREAS PROGRAMACION PERL

CONSTRUIRLES PROGRAMAS DE EDICION O MODIFICACION A LOS ARCHIVOS YA CONSTRUIDOS.

Politica de Privacidad