UNIDAD 5: REGISTROS Y ARCHIVOS SECUENCIALES

TEMA PERL 9: BAJAS O ELIMINACIONES

Eliminacion o bajas es el proceso por medio del cual algunos registros del archivo son purgados del archivo, existen dos maneras por las cuales se puede realizar ese proceso.

En la primera manera de la cual se proporciona el ejemplo correspondiente se usaran dos archivos, el archivo original y un archivo temporal, el procedimiento o algoritmo es muy sencillo, se lee el registro del archivo original y si no es el registro a eliminar entonces se almacena en el archivo temporal, cuando se termina de procesar todo el archivo original, el archivo temporal solo contendra todos los registros que no se quisieron eliminar, ya con estos dos archivo se procede a eliminar o borrar usando la instruccion unlink de perl linux el archivo original y se procede a renombrar usando la instruccion rename de perl linux el archivo temporal como nuevo archivo original.

Prog25.html


#! /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 ELIMINAR : ";

print $q->textfield('CLAVE1','0', 5);

# creando un submit button

print $q->submit('ELIMINAR');

# cerrando la forma

print $q->endform();

# cerrando html

print $q->end_html;

if ( $q->param('ELIMINAR')) {

# 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 eliminacion

if ( $clave != $q->param('CLAVE1') )

{

# grabar al archivo temporal

print ARCHIVO2 "$clave";

print ARCHIVO2 "$nombre";

print ARCHIVO2 "$edad";

}; };

# cerrando ambos archivos

close(ARCHIVO1);

close(ARCHIVO2);

# eliminando archivo original

unlink "DATOS.DAT";

rename("TEMP.DAT","DATOS.DAT");

print "REGISTRO ELIMINADO";

};

Corrida:

image266.jpg

EL problema con esta manera de eliminar incluso fisicamente los registros del archivo es que no hay manera de recuperar esa informacion posteriormente.

Es por eso que otra tecnica comun de eliminacion es incluir un campo de estado, status o bandera o semaforo en el registro y conforme se va cargando el registro y antes de mandarlo a disco se le agrega a dicho campo el caracter 'A' –>alta, asi que cuando se quiera una baja solo se pondria dicho campo en 'B' y todos los programas de lectura, busqueda y filtros deberan revisar esta campo de estado antes de hacer algo con el registro.

TAREAS PROGRAMACION PERL :

Construir programas de eliminacion usando los dos metodos( bajas fisicas como en el ejemplo y bajas logicas como se indica en el ultimo parrafo) para los archivos construidos, para este ultimo caso se deberan reconstruir todos los programas anteriores,

 




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