presentación manejo de archivos

39
Equipo 1 MANEJO DE ARCHIVOS EN C Karla Franco Garcia 1768157 Eusebio Alejandro Quirino Macias 1614937 Luis Daniel Márquez Ramos 1634281 Edgar Geovani Tamez Garcia 1592151

Upload: scarly-franco-garcia

Post on 10-Jul-2016

230 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Presentación Manejo de Archivos

Equipo 1MANEJO DE

ARCHIVOS EN C

Karla Franco Garcia                      1768157Eusebio Alejandro Quirino Macias   1614937Luis Daniel Márquez Ramos            1634281Edgar Geovani Tamez Garcia         1592151

Page 2: Presentación Manejo de Archivos

INDICE

Introducción Tipos de archivos(texto y binarios) Manejo de archivos en C El puntero a un archivo. Apertura de un archivo Fopen() Cierre de un archivo Fclose() Manejo de archivos en C (Modo texto) Fprintf ()

Page 3: Presentación Manejo de Archivos

Fscanf () Fgets () Fgetc () Fputs () Fputc () Manejo de archivos en C

(Modo binario) Fread () Fwrite ()

Feof () Fseek () Rewind () Ferror () Remove () Fflush () Concluciones Bibliografia

Page 4: Presentación Manejo de Archivos

INTRODUCCIÓN

Un archivo es un conjunto de bits almacenado en un dispositivo de memoria secundaria, el cuál puede ser almacenado con un conjunto de propiedades y recuperado de la misma manera por el sistema operativo para que un programa tenga acceso a este.

Page 5: Presentación Manejo de Archivos

Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene. • Los archivos digitales se llaman así porque son los equivalentes digitales de los archivos en tarjetas, papel o microfichas del entorno de oficina tradicional.

Page 6: Presentación Manejo de Archivos

Tipos de archivos(texto y binarios)

Un archivo de texto es una secuencia de caracteres organizadas en líneas terminadas por un carácter de nueva línea.

En estos archivos se pueden almacenar, fuentes de programas, texto plano, base de datos simples, etc. • Los archivos de texto se caracterizan por ser planos, es decir, solo contienen caracteres de texto.

Page 7: Presentación Manejo de Archivos

Un archivo binario es una secuencia de bytes que tienen una correspondencia uno a uno con un dispositivo externo. Así que no tendrá lugar ninguna traducción de caracteres.

El número de bytes escritos (leídos) será el mismo que los encontrados en el dispositivo externo.

E.g. de estos archivos son Fotografías, imágenes, texto con formatos, archivos ejecutables (aplicaciones), etc.

Page 8: Presentación Manejo de Archivos

Manejo de archivos en C

En C, un archivo es un concepto lógico que puede aplicarse a muchas cosas desde archivos de disco hasta terminales o una impresora.

Para trabajar con un archivo se asocia una estructura especial de tipo FILE con un archivo especifico realizando una operación de apertura.

Page 9: Presentación Manejo de Archivos

Una vez que el archivo está abierto, la información puede ser intercambiada entre este y el programa.

Se puede conseguir la entrada y la salida de datos a un archivo a través del uso de la biblioteca de funciones estándar "stdio.h"; C puro no tiene palabras claves que realicen las operaciones de E/S.

Page 10: Presentación Manejo de Archivos

Observe que la mayoría de las funciones comienzan con la letra “f” (file), esto es un vestigio del estándar C de Unix.

Page 11: Presentación Manejo de Archivos

El puntero a un archivo.

El puntero a un archivo es un tipo especial que opera como hilo común que unifica el sistema de E/S con buffer.

Un puntero a un archivo es un puntero a una información que define varias cosas sobre él, incluyendo el nombre, el estado y la posición actual del archivo.

Page 12: Presentación Manejo de Archivos

• Un puntero a un archivo es una variable de tipo puntero al tipo FILE que se define en "stdio.h".

• Un programa necesita utilizar punteros a archivos para leer o escribir en los mismos.

Page 13: Presentación Manejo de Archivos

Apertura de un archivo

La función fopen() abre una secuencia para que pueda ser utilizada y la asocia a un archivo.

Donde nombre_archivo es un puntero a una cadena de caracteres que representan un nombre valido del archivo y puede incluir una especificación del directorio. La cadena a la que apunta modo determina como se abre el archivo

Page 14: Presentación Manejo de Archivos
Page 15: Presentación Manejo de Archivos

FOPEN()

Esta función sirve para abrir y crear ficheros en disco. Un programa nunca debe alterar el valor de ese

puntero. Si se produce un error cuando se esta intentando abrir un archivo, fopen() devuelve un puntero nulo. Se puede abrir un archivo bien en modo texto o binario. En la mayoría de las implementaciones, en modo texto, la secuencias de retorno de carro / salto de línea se convierten a caracteres de salto de línea en lectura.

Page 16: Presentación Manejo de Archivos

En la escritura, ocurre lo contrario: los caracteres de salto de línea se convierten en salto de línea. Estas conversiones no ocurren en archivos binarios.

Si no existe, fopen() devolverá un error. Finalmente, sus se abre un archivo para las operaciones de leer / escribir, la computadora no lo borrará si existe; sin embargo, si no existe, la computadora lo creará.

Page 17: Presentación Manejo de Archivos

Cierre de un archivo

Escribe toda la información que todavía se encuentre en el buffer en el disco y realiza un cierre formal del archivo a nivel del sistema operativo. Un error en el cierre de una secuencia puede generar todo tipo de problemas, incluyendo la pérdida de datos, destrucción de archivos y posibles errores intermitentes en el programa.

Page 18: Presentación Manejo de Archivos

Fclose() Esta función sirve para poder cerrar un fichero que se ha

abierto. Un valor de retorno cero indica que el fichero ha sido

correctamente cerrado, si ha habido algún error, el valor de retorno es la constante EOF.

Page 19: Presentación Manejo de Archivos

Manejo de archivos en C (Modo texto)

Para introducir u obtener datos en modo texto de un archivo tenemos las siguientes cuatro funciones:

• fprintf() • fscanf() • fgets() • fputs() • Estas funciones se comportan exactamente como prinft() y

scanf(), gets() y puts() excepto que operan sobre archivo.

Page 20: Presentación Manejo de Archivos

Fprintf ()

La función fprintf funciona igual que printf en cuanto a parámetros, pero la salida se dirige a un archivo en lugar de a la pantalla.

Page 21: Presentación Manejo de Archivos

Fscanf ()

La función fscanf funciona igual que scanf en cuanto a parámetros, pero la entrada se toma de un fichero en lugar del teclado.

Page 22: Presentación Manejo de Archivos

Fgets ()

Esta función está diseñada para leer cadenas de caracteres. Leerá hasta n-1 caracteres o hasta que lea un cambio de línea '\n' o un final de archivo EOF.

En este último caso, el carácter de cambio de línea '\n' también es leído.

Page 23: Presentación Manejo de Archivos

El primer parámetro buffer lo hemos llamado así porque es un puntero a un espacio de memoria del tipo char (podríamos usar un arreglo de char). El segundo parámetro es tamaño que es el limite en cantidad de caracteres a leer para la funcion fgets. Y por ultimo el puntero del archivo por supuesto que es la forma en que fgets sabra a que archivo debe leer.

Page 24: Presentación Manejo de Archivos

Fgetc ()

Esta función lee un caracter a la vez del archivo que esta siendo señalado con el puntero *archivo. En caso de que la lectura sea exitosa devuelve el caracter leído y en caso de que no lo sea o de encontrar el final del archivo devuelve EOF.

Page 25: Presentación Manejo de Archivos

Esta función se usa generalmente para recorrer archivos de texto. A manera de ejemplo vamos a suponer que tenemos un archivo de texto llamado "prueba.txt" en el mismo directorio en que se encuentra el fuente de nuestro programa. 

Page 26: Presentación Manejo de Archivos

Fputc ()

Esta función escribe un carácter a la vez del archivo que esta siendo señalado con el puntero *archivo. El valor de retorno es el carácter escrito, si la operación fue completada con éxito, en caso contrario será EOF.

Page 27: Presentación Manejo de Archivos

Fputs()

La función fputs escribe una cadena en un fichero. la ejecución de la misma no añade el carácter de retorno de línea ni el carácter nulo final. El valor de retorno es un número no negativo o EOF en caso de error. Los parámetros de entrada son la cadena a escribir y un puntero a la estructura FILE del fichero donde se realizará la escritura.

Page 28: Presentación Manejo de Archivos

MANEJO DE ARCHIVOS EN C (MODO BINARIO)

Para introducir u obtener datos en modo binario de un archivo tenemos las siguientes funciones: fread(), fwrite() y feof()

Page 29: Presentación Manejo de Archivos

Fread () Esta función lee un bloque de una "stream" de datos. Efectúa la

lectura de un arreglo de elementos "count", cada uno de los cuales tiene un tamaño definido por "size". Luego los guarda en el bloque de memoria especificado por "ptr". El indicador de posición de la cadena de caracteres avanza hasta leer la totalidad de bytes. Si esto es exitoso la cantidad de bytes leídos es (size*count).

ptr  : Puntero a un bloque de memoria con un tamaño mínimo de (size*count) bytes.size  : Tamaño en bytes de cada elemento (de los que voy a leer).count : Número de elementos, los cuales tienen un tamaño "size".stream: Puntero a objetos FILE, que especifica la cadena de entrada.

Page 30: Presentación Manejo de Archivos

Fwrite ()

Esta función está pensada para trabajar con registros de longitud constante y forma pareja con fread. Es capaz de escribir hacia un fichero uno o varios registros de la misma longitud almacenados a partir de una dirección de memoria determinada.

El valor de retorno es el número de registros escritos, no el número de bytes.

Los parámetros son: un puntero a la zona de memoria de donde se obtendrán los datos a escribir, el tamaño de cada registro, el número de registros a escribir y un puntero a la estructura FILE del fichero al que se hará la escritura.

Page 31: Presentación Manejo de Archivos

FEOF ()

Esta función sirve para determinar si el cursor dentro del archivo encontró el final (end of file).

Existe otra forma de verificar el final del archivo que es comparar el caracter que trae fgetc del archivo con el macro EOF declarado dentro de stdio.h, pero este método no ofrece la misma seguridad (en especial al tratar con los archivos "binarios").

La función feof siempre devolverá cero (Falso) si no es encontrado EOF en el archivo, de lo contrario regresará un valor distinto de cero (Verdadero).

Page 32: Presentación Manejo de Archivos

MANEJO DE ARCHIVOS EN C (MANEJO DEL DESPLAZAMIENTO SOBRE EL ARCHIVO) Para introducir u obtener datos en modo o como

desplazarnos sobre el mismo tenemos las siguientes funciones: fseek(), rewind (), ferror(), remove() y fflush()

Page 33: Presentación Manejo de Archivos

fseek() Esta función está sitúa el puntero (cursor) de un archivo en

una posición deseada, trabaja para modo binario y texto. archivo es un puntero a la estructura del archivo offset es un entero largo que especifica el número de bytes

de origen, donde se colocará el cursor.

Page 34: Presentación Manejo de Archivos

REWIND ()

Literalmente significa "rebobinar", sitúa el cursor de lectura/escritura al principio del archivo.

inicializa el indicador de posición, al principio del archivo, indicado por su argumento

Page 35: Presentación Manejo de Archivos

Ferror ()

La función ferror() determina si se ha producido en error en una operación sobre un archivo

La función ferror() retorna un valor distinto a cero si y sólo si el indicador de errores está activado para stream.

Page 36: Presentación Manejo de Archivos

Remove ()

La función remove() borra el archivo especificado Devuelve cero si tiene éxito. Si no un valor distinto de cero.

Page 37: Presentación Manejo de Archivos

Fflush () Escribe todos los datos almacenados en el buffer sobre el

archivo asociado con un apuntador. Si se llama esta función con un puntero nulo se vacian los

buffers de todos los archivos abiertos. Esta función devuelve cero si tiene éxito, en otro caso, devuelve EOF.

Page 38: Presentación Manejo de Archivos

Conclusión Aunque existe una gran diversidad de aplicaciones que se

pueden desarrollar con manejo de archivos que pueden ser sumamente completas y complejas, estos apuntes presentan, de una forma sencilla y comprensible, los aspectos básicos de programación de archivos usando lenguaje C++. De tal forma, que no presenta lógica abrumadora de control de detalles, sino la base fundamental del material es entender y utilizar las funciones básicas de manejo de archivos en este lenguaje para posteriormente.