Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Al terminar de trabajar con el archivo, siempre debemos cerrarlo, lo que logramos con close
en el programa anterior deberamos poner la sentencia close(unarchi)
Existe una funcin que nos devuelve el tamao del archivo en cantidad de registros, es filesize.
Si para este archivo (supongamos que lo referenciamos como zarch),
.
registro registro registro registro registro registro registro
a .
.
registro 0 registro 1 registro 2 registro 3 registro 4 registro 5 registro 6
a .
vvv sealador o puntero
(en este caso apuntando al registro 4)
Podemos pensar que los archivos tienen un sealador o puntero que siempre est apuntando
al prximo registro a ser procesado.
La funcin filepos devuelve el nmero del registro apuntado, para el dibujo anterior,
filepos(zarch) devolver el entero 4.
En vez de poner un nmero entero, podemos poner una variable de tipo integer. Por ejemplo
seek(zarch,k) (donde suponemos que es k una variable entera que tiene un cierto valor).
Veamos ahora dos instrucciones que se usan para leer informacin de un archivo o grabar
informacin en un archivo. Son, respectivamente read y write.
.x(ejemplificamos para archivo de registros)
Reiteramos: despus del read y/o del write el puntero pasa a apuntar al registro siguiente.
54
Algoritmos y Estructuras de Datos
write('Ingrese un real'); readln(x); write(x)
end.
nos pedir cinco veces que ingresemos por teclado un real y lo grabar en la pantalla.
Supongamos que ingresamos los reales 1.75 -2.0 1.0 3.1 y -1.11
Hemos puesto en verde claro los carteles y en verde oscuro lo que ingresamos por teclado y
lo que est en negro representa lo que muestra el programa por pantalla.
Cuando el programa termina y comenzamos cualquier otro trabajo, la pantalla se borra y los datos
que haba en ella se pierden.
Supongamos que no queremos perder los datos leidos. Vamos a guardarlos en un archivo al que
llamaremos archifac.dat al que lo pondremos en una carpeta cualquiera, por ejemplo c:\com99.
Para hacer referencia al archivo en el programa lo llamaremos prueba.
program archifac1(input,output);
var prueba: file of real; x: real;
begin assign(prueba, 'c:\com99\archifac.dat');
rewrite(prueba);
write('Ingrese un real'); readln(x); write(prueba,x);
write('Ingrese un real'); readln(x); write(prueba,x);
write('Ingrese un real'); readln(x); write(prueba,x);
write('Ingrese un real'); readln(x); write(prueba,x);
write('Ingrese un real'); readln(x); write(prueba,x); close(prueba)
end.
Ahora, (suponiendo que ingresamos los mismos cinco valores) el archivo c:\com99\ archifac.dat
qued con esos cinco valores ya mencionados grabados, los cuales se conservarn.
56