manejo archivos

26
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

Upload: karlalopezbello

Post on 18-Nov-2014

2.432 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Manejo archivos

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

Page 2: Manejo archivos

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).

Page 3: Manejo archivos

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

Page 4: Manejo archivos

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.

Page 5: Manejo archivos

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.

Page 6: Manejo archivos

Programación II

Archivo Texto

Page 7: Manejo archivos

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.).

Page 8: Manejo archivos

Programación II

Archivo Binario

Page 9: Manejo archivos

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.

Page 10: Manejo archivos

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.

Page 11: Manejo archivos

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.

Page 12: Manejo archivos

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.

Page 13: Manejo archivos

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.

Page 14: Manejo archivos

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.

Page 15: Manejo archivos

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.

Page 16: Manejo archivos

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”.

Page 17: Manejo archivos

Programación II

Programación en C++

Abrir

Cerrar

Usar: leer / escribir

Page 18: Manejo archivos

Programación II

Programación en C++

Nótese el uso de try –

catch para el manejo de

excepciones

Page 19: Manejo archivos

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

Page 20: Manejo archivos

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.

Page 21: Manejo archivos

Programación II

Programación en C++

• Archivos binarios con bloques más

complejos: estructuras lineales.

Page 22: Manejo archivos

Programación II

Programación en C++

Page 23: Manejo archivos

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.

Page 24: Manejo archivos

Programación II

Programación en C++

Posición absoluta

Page 25: Manejo archivos

Programación II

Programación en C++

Posición relativa

Page 26: Manejo archivos

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.