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.

 




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