ProgramacionFacil

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.

 




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