Archivos en C

59 %
41 %
Information about Archivos en C

Published on January 4, 2009

Author: javi2401

Source: slideshare.net

Description

Presentación que introduce el manejo de archivos en lenguaje C. Muestra la forma de abrirlos, trabajar con ellos y cerrarlos.

Archivos

Archivos de Texto Los archivos pueden almacenar todo tipo de información Dependiendo de eso, tienen un “tipo” En Windows, el “tipo” de un archivo esta dicho por su extensión Los archivos tipo texto (.txt) son los más simples de todos Sólo almacenan secuencias de caracteres Suponga ahora el siguiente archivo shakespeare.txt: ¿Que hay en un nombre? Eso que llamamos una rosa Emanaría un olor tan dulce, aun teniendo otro nombre Al verlo, podemos decir que es un conjunto de caracteres, y de hecho, este archivo tiene 3 líneas. Es práctico pensar en un archivo como una estructura de dos dimensiones: líneas, cada una compuesta de un conjunto de caracteres ¿Que hay en un nombre? Eso que llamamos una rosa Emanaria un olor tan dulce, aun teniendo otro nombre Estructura bidimensional: Conjunto de líneas, cada una compuesta de caracteres En realidad son una sola secuencia de caracteres que incluyen el ‘ ’:

Los archivos pueden almacenar todo tipo de información

Dependiendo de eso, tienen un “tipo”

En Windows, el “tipo” de un archivo esta dicho por su extensión

Los archivos tipo texto (.txt) son los más simples de todos

Sólo almacenan secuencias de caracteres

Suponga ahora el siguiente archivo shakespeare.txt:

Al verlo, podemos decir que es un conjunto de caracteres, y de hecho, este archivo tiene 3 líneas.

Es práctico pensar en un archivo como una estructura de dos dimensiones: líneas, cada una compuesta de un conjunto de caracteres

En realidad son una sola secuencia de caracteres que incluyen el ‘ ’:

¿Y En C? Un archivo se parece mucho a una cadena Desde un programa en C se puede: Crear archivos Tomar datos del archivo y ponerlos en variables Modificar archivos Eliminar y renombrar archivos Todas son operaciones que se manejan a través de stdio.h Para trabajar con archivos se debe: Declarar una variable de tipo FILE * (un puntero a FILE) Esta se debe asociar con el archivo, usando la función fopen Se efectúan las operaciones de manejo de archivos que se desee Cuando se ha terminado de trabajar con el archivo se utiliza fclose para cerrarlo

Un archivo se parece mucho a una cadena

Desde un programa en C se puede:

Crear archivos

Tomar datos del archivo y ponerlos en variables

Modificar archivos

Eliminar y renombrar archivos

Todas son operaciones que se manejan a través de stdio.h

Para trabajar con archivos se debe:

Declarar una variable de tipo FILE * (un puntero a FILE)

Esta se debe asociar con el archivo, usando la función fopen

Se efectúan las operaciones de manejo de archivos que se desee

Cuando se ha terminado de trabajar con el archivo se utiliza fclose para cerrarlo

Importante Un puntero de tipo FILE sirve para representar a un archivo en un programa en C. Por cada archivo con el que se desee trabajar, se declarar una variable FILE * Si una función va a trabajar con un archivo, puede recibir una variable de tipo FILE * La variable de tipo FILE * no sirve de nada si no se la “asocia” a un archivo a través de la función fopen: variable de tipo FILE * = fopen (nombre de archivo, modo);

Un puntero de tipo FILE sirve para representar a un archivo en un programa en C.

Por cada archivo con el que se desee trabajar, se declarar una variable FILE *

Si una función va a trabajar con un archivo, puede recibir una variable de tipo FILE *

La variable de tipo FILE * no sirve de nada si no se la “asocia” a un archivo a través de la función fopen:

variable de tipo FILE * = fopen (nombre de archivo, modo);

Abrir y Cerrar un Archivo Un archivo se puede abrir para en los siguientes modos: Lectura: “r” Para “tomar” datos del archivo. El archivo DEBE existir Escritura: “w” Para crear archivos y escribir o “mandar” datos al archivo. Si el archivo no existe, lo crea, si ya existe, lo sobre-escribe Añadir: “a” Para escribir o “mandar” datos a un archivo que ya existe. Si no existe, lo crea, si ya existe, los datos enviados se “añaden” infile = fopen (“shakespeare.txt”,”r”); Si la operación de “abrir” falla, por alguna razon, fopen devuelve NULL. if(infile == NULL) { printf(“Error al abrir el archivo ”); exit(1); } /*trabajar con el archivo*/ fclose(infile); Cuando se ha terminado de trabajar con el archivo, este se cierra con fclose. Cuando un programa termina, todos los archivos se cierran Sin embargo, es una BUENA PRACTICA de programación, cerrar los archivos pues al revisar el código se sabrá cuando ya no se usa mas una archivo

Un archivo se puede abrir para en los siguientes modos:

Lectura: “r”

Para “tomar” datos del archivo. El archivo DEBE existir

Escritura: “w”

Para crear archivos y escribir o “mandar” datos al archivo. Si el archivo no existe, lo crea, si ya existe, lo sobre-escribe

Añadir: “a”

Para escribir o “mandar” datos a un archivo que ya existe. Si no existe, lo crea, si ya existe, los datos enviados se “añaden”

infile = fopen (“shakespeare.txt”,”r”);

Si la operación de “abrir” falla, por alguna razon, fopen devuelve NULL.

Archivos Estándar stdio ofrece funciones para manipulación de E/S, Usando los dispositivos estándar y Usando archivos Para evitar esa diferencia en las operaciones, stdio , trata a todos como archivos Incluyendo a los dispositivos de E/S estándar: Teclado y Monitor Para representar a cada “archivo de dispositivo” existen 3 identificadores especiales de tipo FILE * stdin: dispositivo de entrada estándar (teclado) stdout: dispositivo de salida estándar (el monitor) stderr: dispositivo de salida de errores estándar (el monitor)

stdio ofrece funciones para manipulación de E/S,

Usando los dispositivos estándar y

Usando archivos

Para evitar esa diferencia en las operaciones,

stdio , trata a todos como archivos

Incluyendo a los dispositivos de E/S estándar:

Teclado y Monitor

Para representar a cada “archivo de dispositivo” existen 3 identificadores especiales de tipo FILE *

stdin: dispositivo de entrada estándar (teclado)

stdout: dispositivo de salida estándar (el monitor)

stderr: dispositivo de salida de errores estándar (el monitor)

Operaciones de E/S Las operaciones básicas son: Tomar (get) datos de un archivo existente: Entrada Poner (put) datos un archivo, sea nuevo o existente: Salida Se puede “tomar” o “poner” 1 carácter o 1 línea entera Para esto se deben usar las funciones de stdio.h : getc, putc fgets, fputs Se puede incluso tomar o leer datos usando un cierto formato: fprintf, fscanf

Las operaciones básicas son:

Tomar (get) datos de un archivo existente: Entrada

Poner (put) datos un archivo, sea nuevo o existente: Salida

Se puede “tomar” o “poner”

1 carácter o

1 línea entera

Para esto se deben usar las funciones de stdio.h :

getc, putc

fgets, fputs

Se puede incluso tomar o leer datos usando un cierto formato:

fprintf, fscanf

E/S de Caracteres int getc(FILE *infile); Toma un carácter del archivo representado por infile Devuelve el código ASCII de dicho carácter El programa lo toma y lo puede almacenar en una variable de tipo char La primera llamada a getc, luego de abierto un archivo, retorna el 1er carácter La segunda, retorna el 2do, y así… Al llegar al final del archivo, getc retorna EOF (fin de archivo). EOF es una constante definida en stdio con -1 void putc(int ch, FILE *outfile) “ Pone” un carácter en el archivo representado por outfile Al abrir un archivo, la primera llamada a putc, pone un carácter en el inicio La segunda, lo pone en la segunda posición el archivo, y así

int getc(FILE *infile);

Toma un carácter del archivo representado por infile

Devuelve el código ASCII de dicho carácter

El programa lo toma y lo puede almacenar en una variable de tipo char

La primera llamada a getc, luego de abierto un archivo, retorna el 1er carácter

La segunda, retorna el 2do, y así…

Al llegar al final del archivo, getc retorna EOF (fin de archivo). EOF es una constante definida en stdio con -1

void putc(int ch, FILE *outfile)

“ Pone” un carácter en el archivo representado por outfile

Al abrir un archivo, la primera llamada a putc, pone un carácter en el inicio

La segunda, lo pone en la segunda posición el archivo, y así

Funciones de Lectura/Escritura stdio.h fgetc Lee un caracter desde un archivo Recibe un puntero a FILE como parámetro fgetc(stdin) equivale a getchar() fputc Escribe un caracter a un archivo Recibe un puntero a FILE y un caracter como parámetro fputc('a',stdout) equivale a putchar('a') fgets Lee una línea desde un archivo fputs Escribe una línea en un archivo fscanf / fprintf Procesamiento de archivos equivalentes a scanf y printf

fgetc

Lee un caracter desde un archivo

Recibe un puntero a FILE como parámetro

fgetc(stdin) equivale a getchar()

fputc

Escribe un caracter a un archivo

Recibe un puntero a FILE y un caracter como parámetro

fputc('a',stdout) equivale a putchar('a')

fgets

Lee una línea desde un archivo

fputs

Escribe una línea en un archivo

fscanf / fprintf

Procesamiento de archivos equivalentes a scanf y printf

Ejercicio En Clase Escribir un programa que permita copiar el contenido de un archivo llamado entrada.txt a otro llamado salida.txt ¿Qué pasos seguir? Abrir el archivo fuente (entrada.txt) en modo lectura Abrir el archivo destino (salida.txt) en modo escritura Tomar carácter a carácter del fuente y poner en el de lectura, hasta llegar al final del archivo (EOF) Cerrar los dos archivos

Escribir un programa que permita copiar el contenido de un archivo llamado entrada.txt a otro llamado salida.txt

¿Qué pasos seguir?

Abrir el archivo fuente (entrada.txt) en modo lectura

Abrir el archivo destino (salida.txt) en modo escritura

Tomar carácter a carácter del fuente y poner en el de lectura, hasta llegar al final del archivo (EOF)

Cerrar los dos archivos

Algo más sobre scanf… Puede ser de utilidad 

Formato de entrada con scanf Con scanf se puede: Entrada de todo tipo de datos Entrada de caracteres específicos Omitir caracteres específicos Conjuntos de revisión (scan sets) Conjunto de caracteres entre corchetes [] p recedidos del signo % Busca sólo los caracteres del conjunto Cuando los encuentra los almacena en el arreglo respectivo Detiene la lectura cuando lee un caracter que no pertenece al conjunto Conjunto de caracteres invertido Usa el símbolo ^, por ejemplo : [^aeiou] Almacena los caracteres que no se encuentren en el conjunto Omisión de caracteres Se puede incluir el caracter que se desea omitir en la cadena de control O, se puede usar el * que omite cualquier tipo de caracter sin almacenarlo.

Con scanf se puede:

Entrada de todo tipo de datos

Entrada de caracteres específicos

Omitir caracteres específicos

Conjuntos de revisión (scan sets)

Conjunto de caracteres entre corchetes [] p recedidos del signo %

Busca sólo los caracteres del conjunto

Cuando los encuentra los almacena en el arreglo respectivo

Detiene la lectura cuando lee un caracter que no pertenece al conjunto

Conjunto de caracteres invertido

Usa el símbolo ^, por ejemplo : [^aeiou]

Almacena los caracteres que no se encuentren en el conjunto

Omisión de caracteres

Se puede incluir el caracter que se desea omitir en la cadena de control

O, se puede usar el * que omite cualquier tipo de caracter sin almacenarlo.

Add a comment

Related presentations

Related pages

FICHEROS EN LENGUAJE C Los ficheros, en contraposición con ...

Metodología de Programación, Programación en C, Aplicaciones electrónicas 3 / 9 Técnicas de Programación 2ª Parte: Ficheros en Lenguaje C
Read more

Manejo de archivos en lenguaje C - YouTube

Este archivo muestra una introducción acerca de cómo procesar archivos en lenguaje C (lectura y escritura)
Read more

Programación en C/Manejo de archivos - Wikilibros

Ficheros . El estándar de C contiene varias funciones para la edición de ficheros, éstas están definidas en la cabecera stdio.h y por lo general ...
Read more

ARCHIVOS EN C | PROGRAMACION I

Lectura y Escritura en Archivos Secuenciales La clase de hoy cubre la creación, lectura y escritura de archivos. Adicionalmente veremos como pasar ...
Read more

Ficheros C/C++ - Generalidades

En cuanto al tipo de acceso, en C y C++ podemos clasificar los archivos según varias categorías: Dependiendo de la dirección del flujo de datos:
Read more

7. Manejo de Archivos en C. - ual.es

7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos ...
Read more

Manejo de archivos en C++ - Programacion en C/C++

Operaciones con archivos binarios Las operaciones de flujos de archivos se ejecutan en forma predeterminada en modo de texto, sin embargo hay ocasiones en ...
Read more

Tutorial C 48: Archivos - YouTube

Palabras Claves: fopen fclose fprintf fscanf fgetc fputc tutorial archivos
Read more

Cómo abrir archivos C - Extensión de archivo C

Respuesta: Los documentos C son Archivos de desarrollador asociados con UNIX Compact File Achive. Los archivos C también están asociados con ...
Read more