Manejo archivos

Preview:

DESCRIPTION

Manejo de Archivos| Lenguaje C++ | Profesor Mauricio Paletta

Citation preview

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.