UNIDAD 6: LINUX PHP REGISTROS Y ARCHIVOS DIRECTOS

TEMA 6: BAJAS O ELIMINACIONES ARCHIVOS DISCO LINUX PHP

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

Sin embargo en archivos directos no se puede ni se debe eliminar fisicamente registros de los archivos porque recordar que la clave del registro esta enlazada directamente a la posición que dicho registro tiene en disco y no seria muy conveniente estarle cambiando la matricula al alumno cada rato o el nuemro de serie al auto, etc.

Aaprte de que con esta manera de eliminar incluso fisicamente los registros del archivo es que no hay manera de recuperar esa información posteriormente.

Es por eso que otra tecnica común de eliminación 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.

Prog31.php

<HTML>
<FORM ACTION=prog31.php METHOD=post>
DAME CLAVE A ELIMINAR:<INPUT TYPE=text NAME=CLAVE><BR>
<INPUT TYPE=submit NAME=OK VALUE="BAJA"><BR>
</FORM></HTML>
<?php
if ($OK == "BAJA") {
// tamano registro y cantidad de registros
$TR=47; $CR=filesize('datos.dat') / $TR;
// creando y abriendo archivo
$archivo=fopen('datos.dat','r+') or die("no puedo abrir archivo");
// colocandonos en byte de registro a leer
if ( $CLAVE * $TR < filesize('datos.dat') )
{
fseek($archivo, $CLAVE * $TR);
// leyendo y desempacando el registro
$reg=fread($archivo,$TR);
$reg= unpack("iclave/A30nombre/iedad/destatura/A1bandera", $reg);
// cambiando la bandera del registro para ponerla en baja
$reg[bandera]="B";
// empacando otra vez
$reg =pack("IA30idA1",$reg[clave],$reg[nombre],$reg[edad],$reg[estatura],$reg[bandera]);
// regresando apuntador al principio del renglon
rewind($archivo);
fseek($archivo, $CLAVE * $TR);
// regrabando registro
fwrite($archivo,$reg,strlen($reg));
};
//cerrando archivo
fclose($archivo);
// avisando
echo "REGISTRO ELIMINADO";
};
?>

corrida:

image119.jpg

TAREAS PROGRAMACION LINUX PHP :

Construir programa de eliminacion usando bajas logicas para los archivos construidos.

Politica de Privacidad