1. Presentación
Manejo de Archivos
Mauricio Paletta
INGENIERÍA EN INFORMÁTICA
Programación II
Coordinación General de Pregrado
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA
Programación II
2. Archivo
Estructura de datos para almacenamiento /
recuperación de información en memoria
secundaria dispositivos externos (disco
duro por ejemplo).
A diferencia de la memoria principal que es
temporal, la data en memoria secundaria es
permanente (hasta que el usuario decida no
quererla más).
Programación II
3. Archivo
Se identifican por un nombre válido por el
sistema operativo.
El nombre puede contener una extensión que
permite indicar el tipo o categoría al cual el
archivo pertenece. Algunos ejemplos de
extensiones conocidas:
TXT Texto
EXE Ejecutables
COM Programas compilados
Programación II
4. Archivo
CPP Fuente de programa escrito en C++
JAVA Fuente de programa escrito en Java
HTML Fuente de página Web escrita en HTML
DLL Biblioteca de enlace dinámico de Windows
INI Archivo de opciones de configuración de Windows
JPEG Archivo de imagen comprimida en formato Jpeg
TIFF Archivo de imagen comprimida en formato Tiff
PDF Documento guardado en formato Pdf
XML Documento escrito y guardado en formato XML
PPT Documento de presentación escrito en Microsoft
Office PowerPoint.
DOC Documento de presentación escrito en Microsoft
Office Word.
Programación II
5. Archivo Texto
Dos tipos (desde el punto de vista del
contenido):
• Texto: formado por caracteres / bytes
imprimibles, es decir, se pueden leer /
entender con facilidad. La data representa
un texto que puede o no estar asociado a
algún tipo de formato. Ejemplos: archivos
de notas, páginas Web en HTML, archivos
fuente de C++, archivos en XML, etc.
Programación II
7. Archivo Binario
• Binario: formado por cualquier tipo de
caracter / byte. Sólo lo entiende el
programa utilizado para crear el archivo.
Ejemplos: archivos ejecutables,
documentos en formatos especiales (doc,
pdf, jpeg, etc.).
Programación II
9. Operaciones
El sistema operativo controla y autoriza todos
los accesos a dispositivos secundarios.
Abrir Programa
Abrir
Leer / Sistema
escribir Operativo Leer /
Archivo
escribir
Cerrar
Cerrar
Programación II
10. Operaciones
• Abrir: Permite decirle al SOP que se quiere
tener acceso a un archivo particular. Se
indica el nombre del archivo y, en algunos
casos, el tipo (texto / binario) y el objeto de
su uso:
Sólo lectura.
A ser creado (sólo escritura).
Lectura y escritura.
Programación II
11. Operaciones
NOTAS: La lectura se puede hacer con acceso
simultáneo (varios usuarios a la vez). La
escritura requiere de acceso individual. El SOP
se encarga de hacer estas verificaciones.
Cualquier posible problema como por ejemplo
que el archivo no exista, no se encuentre o no
se pueda abrir/crear, hace que la operación de
abrir retorne una condición de error.
Programación II
12. Operaciones
• Cerrar: Permite decirle al SOP que se
quiere dejar de tener acceso a un archivo
particular. Es importante para que el SOP
libere todos los recursos que hubo que
reservar para el uso del archivo. También
permite que otros usuarios puedan tener
acceso al archivo.
NOTA: Un archivo creado que no es
cerrado no se creará adecuadamente.
Programación II
13. Operaciones
• Leer / escribir: obtener / cambiar datos en
el archivo. El archivo debe haber sido
abierto previamente permitiendo hacer la
operación que se quiere.
NOTAS: La lectura de un archivo puede
hacerse mientras no se consiga un
carácter especial de fin de archivo (EOF).
La escritura puede hacerse mientras
haya espacio disponible en el dispositivo.
Programación II
14. Operaciones
La lectura / escritura se hace a partir de
un apuntador de control. A medida que se
va leyendo / escribiendo, el apuntador se
va desplazando en profundidad en el
archivo. Inicialmente (luego de abrir), el
apuntador está en la primera posición
posible.
Programación II
15. Operaciones
• Otras:
Renombrar: cambiar el nombre.
Remover: eliminarlo o borrarlo físicamente del
dispositivo.
Copiar: hacer un duplicado.
Limpiar: eliminar todo su contenido.
Programación II
16. Programación en C++
• Los archivos se manejan haciendo uso del
concepto de “stream” – flujo de caracteres.
• Ejemplo: cout y cin son dos streams para el
flujo en la salida estándar por defecto
(monitor) y la entrada estándar por defecto
(teclado) respectivamente.
• Existe un “stream” particular para el manejo
de archivos: “filestreams” o “fstreams”.
Programación II
18. Programación en C++
Nótese el uso de try –
catch para el manejo de
excepciones
Programación II
19. Programación en C++
Nótese el uso del
método que
permite consultar
si se ha
alcanzado o no el
fin de archivo
para controlar el
recorrido de
lectura
Programación II
20. Programación en C++
• Opciones en el modo de apertura:
Bandera Modo
app (append) coloca el apuntador de posición al final del archivo
antes de cada operación de escritura.
ate (at end) coloca el apuntador de posición al final del archivo al
abrir el archivo.
binary Considera el archivo como de tipo binario.
in (input) para hacer operaciones de lectura.
out (output) para hacer operaciones de escritura.
trunc (truncate) se descarta cualquier información existente; se
asume que el archivo está limpio al abrir.
Programación II
21. Programación en C++
• Archivos binarios con bloques más
complejos: estructuras lineales.
Programación II
23. Programación en C++
• ¿Cómo manejar el apuntador de posición
leer / escribir en cualquier parte?
teelg: obtiene la posición actual del apuntador
de lectura.
seekg: mueve la posición del apuntador de
lectura.
teelp: obtiene la posición actual del apuntador
de escritura.
seekp: mueve la posición del apuntador de
escritura.
Programación II
26. Programación en C++
• Opciones para usar con la operación seek:
Con un solo parámetro posición absoluta.
Con dos parámetros posición relativa basado en la
siguiente tabla:
Bandera Modo
beg A partir del comienzo del archivo.
cur Partiendo de la posición actual.
end Desde el final del archivo.
Programación II