UNIDAD 6:REGISTROS Y ARCHIVOS DIRECTOS

TEMA PERL 7: OPERACIONES CON CAMPOS

En este TEMA PERL se analiza la manera de poder realizar operaciones o procesos con los campos de los registros en el archivo secuencial, lo unico importante a considerar es que los campos del registro son en cierta medida igual que variables normales y por tanto se pueden proceesar de manera normal como lo muestra el ejemplo.

Prog35.pl

#! /usr/bin/perl -w
# usando modulo o libreria CGI
use CGI;
use IO::Seekable;
# 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();
# creando un submit button
print "EDADES MAS 100";
print $q->submit('SUMAR');
# cerrando la forma
print $q->endform();
# cerrando html
print $q->end_html;
if ( $q->param('SUMAR') )
{
# abriendo archivo original para lectura y escritura
open(ARCHIVO, "+<DATOS.DAT") || die "No se pudo abrir archivo";
while(!eof(ARCHIVO)){
# leyendo registro
read(ARCHIVO, $temporal, 39);
# desempacandolo
($clave, $nombre, $edad, $bandera) = unpack("I A30 I A1", $temporal);
# sumando edad
$edad = $edad + 1000;
# regrabando
seek(ARCHIVO, -39, SEEK_CUR);
print ARCHIVO pack("I A30 I A1", $clave, $nombre, $edad, $bandera);
};
#cerrando archivo
close(ARCHIVO);
print "EDADES AUMENTADAS";
};

corrida:

image277.jpg

corrida prog31

image278.jpg

como se observa la solucion es muy sencilla solo se ocupa:

1.- leer read() el registro, esto mueve el apuntador al siguiente registro.

2.- modificar registro

3.- regresar a posicion anterior con seek() y OBSERVAR LA LIBRERIA QUE SE AGREGO AL PRINCIPIO DEL PROGRAMA.

4.- grabar el registro corregido

y no se ocupan los dos archivos como en el caso secuencial.

TAREAS PROGRAMACION PERL :

CONSTRUIRLES PROGRAMAS QUE PROCESEN ALGUNOS CAMPOS DE LOS ARCHIVOS EJEMPLOS QUE YA TIENEN CONSTRUIDOS.

Politica de Privacidad