manejo archivos
DESCRIPTION
Manejo de Archivos| Lenguaje C++ | Profesor Mauricio PalettaTRANSCRIPT
Programación II
Mauricio Paletta
Coordinación General de Pregrado
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA
INGENIERÍA EN INFORMÁTICA
Programación II
Manejo de Archivos
Presentación
Programación II
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
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
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
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
Archivo Texto
Programación II
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
Archivo Binario
Programación II
Operaciones
Archivo
Abrir
Sistema
Operativo
Programa
Cerrar
Leer /
escribir
Abrir
Leer /
escribir
Cerrar
El sistema operativo controla y autoriza todos
los accesos a dispositivos secundarios.
Programación II
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
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
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
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
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
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
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
Programación en C++
Abrir
Cerrar
Usar: leer / escribir
Programación II
Programación en C++
Nótese el uso de try –
catch para el manejo de
excepciones
Programación II
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
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
Programación en C++
• Archivos binarios con bloques más
complejos: estructuras lineales.
Programación II
Programación en C++
Programación II
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
Programación en C++
Posición absoluta
Programación II
Programación en C++
Posición relativa
Programación II
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.