Title: Archivos I
1Archivos (I)
- Clase 19
- Introducción a la Programación
2Almacenamiento secundario
- Los computadores manipulan datos almacenados en
su memoria principal (almacenamiento primario) - Sin embargo, esta memoria es limitada y volátil,
- por lo que se hace necesario emplear otro tipo de
almacenamiento que sea perdurable - y cuya disponibilidad (en cuanto a espacio y
costo) sea más conveniente.
3Dispositivos de almacenamiento secundario más
conocidos
- Discos magnéticos (conocidos como discos duros)
- Diskettes (también conocidos como discos
flexibles) - Discos ópticos (CD-ROMs)
- Cintas magnéticas (normalmente para respaldos)
4Sistema de archivos
- Es una abstracción del sistema operativo, que
permite operar con distintos dispositivos de
almacenamiento secundario de una forma estándar. - El sistema de archivos tiene una organización
jerárquica - Operaciones típicas con archivos
- Leer
- Escribir
- Cambiar el nombre
- Crear una carpeta
- Borrar un archivo o una carpeta
5Tipos de archivos
- Los archivos pueden ser de distintos tipos,
dependiendo del tipo de datos que almacenen.
Podríamos citar - Archivos de texto, cuyos datos están en formato
ASCII - Programas ejecutables en formato binario
- Imágenes (bitmaps, jpeg, gif, etc.).
- Sonido (wav)
- Video (avi)
- Sin embargo, en este curso nos limitaremos a
trabajar con archivos que guardan datos en
formato de texto (ASCII). - Las siguientes funciones pertenecen a la librería
stdio.h
6Apertura de un archivo fopen
- Sintaxis
- FILE descriptor
- descriptor fopen("nombre-fisico",
"modo-apertura") - Notas
- FILE es un nuevo tipo de datos
- descriptor contiene un numero que representa al
archivo - descriptor vale NULL si el archivo no se puede
abrir - Modos de apertura
- r abre archivo de texto para lectura
- w crea archivo de texto para escritura (se
pierde contenido anterior) - a abre archivo de texto para escribir al final
- r abre archivo de texto para actualización
(lectura y escritura) - b binario (se agrega para archivos que no son
texto, p.ej. "rb")
7Escritura a un archivo fprintf
- n fprintf(descriptor, "cadena-de-control",
lista-de-argumentos) - Retorna
- Número de caracteres impresos (enviados al
archivo), o - Un número negativo en caso que se haya producido
un error.
8Lectura de un archivo fscanf
- ok fscanf(descriptor, "cadena-de-control",
lista-de-argumentos) - Retorna
- Un valor entero que habitualmente será cero.
- Sin embargo, cuando el archivo del que se están
leyendo los datos se termine, la función
retornará la constante EOF.
9Cerrar un archivo fclose
- El archivo se debe cerrar con
- fclose(descriptor)
- Esto asegura que
- Todo se escriba realmente en el disco
- Se libera memoria
10Ejemplo suma los valores que están en el archivo
datos.txt
include ltstdio.hgt main() FILE
DescArchivo int num, suma
DescArchivo fopen("datos.txt", "r") suma
0 while ( fscanf(DescArchivo, "d",
num) ! EOF ) suma suma num
printf("La suma es d\n", suma)