Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ar Chivos
Ar Chivos
Ar Chivos
Conocimientos
bsicos de programacin
Tema 3. Gestin de Archivos
Informtica
1/34
Objetivos
Introducir el concepto de archivo.
Conocer y saber distinguir entre archivos binarios y
archivos de texto.
Conocer y saber utilizar los comandos save y load
para guardar y recuperar posteriormente variables.
Comprender los modos de apertura y cierre de
archivos en Matlab.
Conocer y saber utilizar las funciones de gestin de
archivos en Matlab.
Informtica
2/34
ndice
1.
2.
3.
4.
5.
6.
7.
8.
Informtica
Definicin de archivo.
Ventajas e inconvenientes del uso de archivos.
Tipos de archivos.
El descriptor de archivo.
Comandos save y load.
Otras operaciones con archivos.
Ejercicios.
Resumen.
Tema 3. Gestin de Archivos
3/34
Definicin
Concepto de Archivo: Un archivo (o fichero) es la unidad
lgica de almacenamiento en un dispositivo de memoria
secundaria.
Cualquier conjunto de datos almacenado en un dispositivo
de almacenamiento secundario, independientemente de
la informacin que represente (programas, textos,
grficos, ), est agrupado en una estructura de datos
llamada archivo.
En los sistemas operativos modernos, un archivo se
estructura como una secuencia de bytes.
Informtica
4/34
5/34
Tipos de Archivos
En funcin del tipo de informacin que contienen,
los archivos se suelen clasificar en dos categoras:
De texto: las secuencias de bytes que lo forman slo
representan caracteres ASCII legibles (.txt, .m, etc.).
Informtica
6/34
El descriptor de archivo
El acceso a archivos se hace a travs de una estructura
intermedia gestionada por el sistema operativo denominada
manejador de archivo.
Para acceder a un archivo desde un lenguaje de
programacin, el sistema operativo crea un manejador de
archivo y ste se asocia a una variable que ser el descriptor o
identificador de archivo.
Todo archivo tiene asociado un buffer (zona de memoria
principal) para realizar las operaciones de E/S de forma ms
rpida.
La escritura no se realiza directamente sobre el dispositivo de
almacenamiento, sino que se escribe en el buffer.
El espacio en memoria principal se reserva automticamente
cuando se realiza la apertura del archivo y se inicializa el
descriptor de archivo.
Informtica
7/34
8/34
9/34
10/34
Informtica
11/34
Informtica
12/34
Informtica
13/34
14/34
15/34
Sintaxis:
id_arch=fopen (nombre.dat, modo_apertura);
Abre el archivo nombre.dat y devuelve id_arch, que es
el descriptor o identificador del archivo.
Si no hay ningn problema en la apertura, id_arch
tomar un valor entero mayor que 2.
Si ocurre algn tipo de error id_arch valdr -1.
Informtica
16/34
17/34
18/34
fclose(mi_archivo);
end
Informtica
19/34
Sintaxis:
res = fprintf ([id_arch], tipo_formato, var1, var2, );
Escribe en el archivo identificado por id_arch las variables var1, var2,
etc, que sern del formato especificado en tipo_formato.
res es un entero que ser el nmero de bytes que se han escrito.
Si se omite id_arch se escribe en la salida estndar: pantalla.
Valores de tipo_formato: %d para enteros; %f, %e o %g para
reales, %c para caracteres; %s para cadenas de caracteres; \n; \t
Informtica
20/34
Informtica
21/34
Informtica
22/34
Informtica
23/34
Programa que escribe una matriz en un fichero. Cada fila en una lnea
% Programa EscribeMatriz
% Entradas: Una matriz y un nombre de fichero
% Salidas: Escribe en el fichero la matriz. Cada fila en una lnea. Los datos en una fila separados por espacios
m = input ('Introduzca una matriz de nmeros: ');
nombre = input ('Introduzca el nombre del archivo: ', 's');
fid = fopen (nombre, 'w');
if (fid ~= -1)
[nf, nc] = size (m);
for fila = 1:nf
for col = 1:nc
fprintf (fid, '%f ', m(fila,col));
if col ~= nc
fprintf (fid, ' ');
else
fprintf (fid, '\n');
end
end
end
fclose (fid);
else
disp (['No se pudo abrir el fichero ', nombre]);
end
Informtica
24/34
25/34
Sintaxis:
[var, leidos] = fscanf ([id_arch], tipo_formato, [tam]);
Lee los datos del archivo id_arch, los convierte segn el formato
especificado en tipo_formato y los devuelve en var.
leidos es un ENTERO que ser el nmero de elementos que se han
ledo.
Si se omite id_arch se lee de la entrada estndar: teclado.
Valores de tipo_formato: los mismos que para fprintf.
tam puede ser:
n: lee n elementos en un vector columna.
inf: lee hasta el final del archivo (opcin por defecto).
[nf, nc]: lee los elementos necesarios para llenar una matriz nf*nc,
se lee por columnas. Solamente se puede poner inf en nc.
Informtica
26/34
1.00
1.00000000
1.1517092
2.71828183
27/34
Otra posibilidad:
>>*A,cont+=fscanf(fid,%d,*2,5+)
A=
13579
2 4 6 8 10
cont=10
Informtica
28/34
29/34
Informtica
30/34
Ejercicios
1.
a)
31/34
Resumen
Archivo: unidad lgica de almacenamiento en un dispositivo de
memoria secundaria.
Ventajas: Persistencia de los datos y capacidad de
almacenamiento superior.
Inconvenientes: Lentitud de acceso a memoria.
Tipos de archivos: de texto (caracteres ASCII) y binarios.
Comandos save y load para recuperar los valores de algunas o
todas las variables definidas en una sesin.
Otras funciones para manejar archivos de texto: fprintf y fscanf.
Informtica
32/34