Publicado el 5 de Julio del 2019
598 visualizaciones desde el 5 de Julio del 2019
394,4 KB
52 paginas
Creado hace 12a (01/12/2011)
Tema 10
d d
A hi
Archivos de datos
Fundamentos de Informática
Índice
• Introducción
• Operaciones básicas con archivos
Operaciones básicas con archivos
• Tipos de Archivos
• Tipos de Archivos
• Archivos de texto
t
A hi
d t
• Archivos binarios
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
2
11
• Introducción
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
3
Archivos
Un archivo es un conjunto de información que se almacena en un ordenador y puede ser
identificado por su ruta completa, cuyo fin ultimo es guardar o proporcionar información.
Utilizaremos archivos secuenciales.
La memoria RAMRAM se borra en cuanto se corta la corriente.
Es necesario un sistema de almacenamiento secundario.
Los archivos se almacenan en dispositivos de almacenamiento como el disco duro,
diskette, CD ROM, …
El manejo de los sistemas de almacenamiento de los archi os es gestionado por el sistema
El manejo de los sistemas de almacenamiento de los archivos es gestionado por el sistema
operativo.
Carpetas
Archivos
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
4
Archivos
• Hasta ahora los programas han tomado y devuelto datos de:
• teclado ‐ pantalla
• teclado ‐ pantalla.
• Una operación de lectura de un fichero es parecida a una operación
• Una operación de escritura de un fichero es parecida a una
ió d
fi h
id
de lectura de datos desde el teclado
U
operación de escritura en pantalla.
• Utilizaremos archivos secuenciales.
• Operaciones con archivos:
d
i
– Apertura de archivos: fopen()
– Cierre de archivos: fclose()
Cierre de archivos: fclose()
– Lectura de archivos: fscanf () (texto), fread() (binarios)
– Escritura en archivos: fprintf () (texto), fprintf() (binarios)
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
5
22
Operaciones básicas con archivos
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
6
Operaciones básicas con archivos
• Diferencias con el manejo de pantalla y teclado:
– Es necesario establecer un área de buffer.
• Este área almacena la información mientras se está transfiriendo
• Este área almacena la información mientras se está transfiriendo
hacia o desde el fichero.
– Para apuntar a esa área de buffer se utiliza la siguiente declaración:
FILE *punt_fichero;
– Donde:
• FILE es un tipo especial de estructura que establece el área del
FILE es un tipo especial de estructura que establece el área del
buffer. Contiene toda la información que necesitan el resto de
funciones que trabajan con archivos, como el modo del archivo, los
buffers del archivo, errores ...
,
– Incluida en stdio.h
• punt_fichero es una variable de tipo puntero que apunta al
l
i bl d ti
t fi h
comienzo del área del buffer.
t
t
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
7
Operaciones básicas con archivos
p
– Siempre antes de realizar cualquier operación con un fichero.
• Apertura de un archivo: fopen()
p ()
li
• Una vez abierto el fichero, y hasta que éste se cierre, se pueden
l
realizar tantas operaciones como se deseen sin necesidad de volver
a abrirlo.
j
– El objetivo de abrir un fichero es:
id d d
d
i
i
• Asociar el nombre del archivo “físico” con el área del buffer.
• Especificar el uso que se le va a dar al fichero (lectura, escritura,
t
l
it
lectura‐escritura, en modo texto, binario ...).
Memoria Interna
t bi
d t
i
) Memoria Externa
Canal físico
Programa
Buffer
Canal lógico
Departamento de Sistemas Informáticos
Registro buffer: espacio de memoria interna que reserva el sistema para el intercambio de registros entre el archivo y el programa.
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
8
Operaciones básicas con archivos
• Apertura de un archivo: fopen()
– Prototipo de la función:
FILE *fopen (char * nombre_completo_archivo, char *modo);
• nombre_completo_archivo (cadena de caracteres): es el nombre
del archivo físico sobre el que queremos trabajar.
del archivo físico sobre el que queremos trabajar.
– Incluyendo el camino completo y la unidad en caso de que
fuera necesario.
• modo (cadena de caracteres): indica el uso que vamos a hacer del
fichero o archivo (ver la siguiente transparencia)
• El valor de retorno de fopen():
El valor de retorno de fopen():
– Éxito: El puntero al comienzo del área del buffer.
– Fracaso: devuelve NULL si no se pudiera abrir el fichero.
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
9
– “r”
– “w”
– “a”
– “r+”
– “w+”
– “a+”
– ‘b’
escritura).
)
it
uno nuevo.
» Abre un nuevo archivo solo para escritura. En caso de existir un archivo con ese
Ab
nombre, lo borra y crea un nuevo archivo vacío.
hi
hi
E
d
l
i
i
i
» Abre un archivo para añadir. Si el archivo no existe crea uno nuevo, pero si
hi
existe no borra su contenido. Se posiciona al final del archivo de forma que
sucesivas escrituras se añaden al final del archivo original.
id S
l d l
d f
l fi
i t
i i
b
t
» Abre un archivo existente para actualizarlo (tanto para lectura como para
» Abre un archivo nuevo para lectura y escritura. Si existiera un archivo con ese
nombre, lo borra y crea un nuevo archivo vacío.
» Abre un archivo existente para leer y añadir. Si no existiera el archivo se creará
Operaciones básicas con archivos
•
Apertura de un archivo: Modo
Apertura de un archivo: Modo
» Abre un archivo existente solo para lectura.
» Hay que añadirle a cualquiera de los modos anteriores cuando se esté trabajando
con datos binarios.
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
10
Operaciones básicas con archivos
Ejemplo
Función fopen(). Apertura para leer y escribir.
#include <stdio h>
#include <stdio.h>
...
int main(void){
FILE *pfich;
...
pfich=fopen(“c:\\temp\\pepe.txt”,“r+”);/*Apertura*/
if(pfich==NULL){ /*Comprobamos apertura*/
}
...
return 0;
printf(“Error: No se puede abrir el archivo.\n”);
}
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
11
Operaciones básicas con archivos
• Cierre de un archivo: fclose()
– Su objetivo es liberar el espacio del área del buffer
Su objetivo es liberar el espacio del área del buffer.
– Se escriben a disco todos los datos que aún queden en el buffer, se
“desconecta” el archivo del programa y se libera el puntero al archivo.
– Es obligatorio cerrar un fichero cuando se haya terminado con su uso
dentro del programa.
– Siempre que queramos cambiar la forma de acceso al fichero (modo)
Siempre que queramos cambiar la forma de acceso al fichero (modo),
también será necesario cerrarlo y volverlo a abrir especificando el
nuevo tipo de acceso para el manejo del fichero.
• Un fichero no puede abrirse mas de una vez sin antes haberlo
h b l
d
f h
cerrado.
d
b
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
12
Operaciones básicas con archivos
• Cierre de un archivo fclose()
• Cierre de un archivo: fclose()
– Prototipo de la función:
(
int fclose(FILE *puntero al archivo);
);
• puntero_al_archivo: es el puntero a archivo devuelto por la función
_ _
p
l
l
f
l
d
ó
fopen() al abrir el archivo que se desea cerrar.
l
• El valor devuelto por la función es:
0: si el archivo se cerró con éxito,
‐1: si ocurrió algún tipo de error al cerrarlo
1: si ocurrió algún tipo de error al cerrarlo
Independientemente del valor de retorno, el archivo se cierra.
Un error típico es que el disco se ha llenado y no se ha podido vaciar
el buffer con la consiguiente pérdida de datos
Ejemplo
Función fclose(). Cierre fichero “pepe.txt” ejemplo anterior.
if(fclose(pfich)!=0){
printf(“Error al cerrar el archivo\n”);
printf( Error al cerrar el archivo\n );
printf(“Posible pérdida de datos”);
}
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
13
Operaciones básicas con archivos
#include <stdio.h>
int main(void)
{
FILE *pfich;
Declaración de un
Declaración de un
puntero a archivo
Apertura en modo escritura
(w) del archivo “datos.txt”
Comprobación de que la
apertura ha sido correcta
t
id
t
h
Cierre del archivo y comprobación de si
Cierre del archivo y comprobación de si
se ha realizado correctamente
pfich = fopen(“datos.txt”,”w”);
if (pfich == NULL) {
) {
(p
printf(“\n Error al abrir el fichero”);
}
... /* Se utiliza el archivo para escritura */
... / Se utiliza el archivo para escritura /
/* Al acabar de usar el archivo */
if (fclose(pfich) != 0) {
printf(”\n Error al cerrar el archivo “);
printf( \n Error al cerrar el archivo );
}
return 0;
}
}
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
14
33
Tipos de archivos
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería ICAI
Tema 1: Introducción. Arquitectura básica y Sistemas Operativos
15
Tipos de archivos
• Tipos de archivo:
– Texto.
• Archivos ASCII planos, obtenidos y manejados desde programa
Comentarios de: Tema 10 - Archivos de datos (0)
No hay comentarios