Archivos en C
Upcoming SlideShare
Loading in...5
×
 

Archivos en C

on

  • 27,329 views

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

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

Statistics

Views

Total Views
27,329
Views on SlideShare
27,235
Embed Views
94

Actions

Likes
0
Downloads
325
Comments
0

1 Embed 94

http://www.slideshare.net 94

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Archivos en C Archivos en C Presentation Transcript

  • 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 ‘ ’:
  • ¿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
  • 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);
  • 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
  • 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)
  • 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
  • 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í
  • 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
  • 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
  • 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.