Programación en C - manejo de Archivos

Slides:



Advertisements
Presentaciones similares
Manejo de archivos.
Advertisements

Tema #10. FICHEROS.
FICHEROS.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Fundamentos de la Programación Estructurada
Programación, Algoritmos y Estructuras de Datos
Estructuras externas de Datos: Archivos
Funciones. Programación, Algoritmos y Estructuras de Datos.
Programación Científica
Archivos Programación.
Informática Ingeniería en Electrónica y Automática Industrial
Asignatura: Lenguaje de Programación de Sistemas PPT No.05 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay Araya.
Archivos. fopen(...) Para comenzar a utilizar un archivo primero se debe abrir, invocando a la función fopen(...) FILE * fopen(char* nombre_arch, char*
Archivos.
Estructuras-Archivos
Programación I Teoría VIII: Entrada/Salida
Manejo de archivos de datos en C
Archivos Programación I MC Beatriz Beltrán Martínez.
Entrada y salida Gestión de ficheros.
Computación I. CI-2125 Tema VIII
Repaso de archivos #include int main(void) { FILE *fp; fp=fopen(“prueba.txt”, “w”); if (fp==NULL) { printf(“Error al abrir el archivo\n”); printf(“No lo.
Visual Basic Prof.: Carol Briones García. Uso de Archivos  Definición  Es un conjunto de información que se almacena en algún medio de escritura que.
Archivos. Introducción Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos.
Manejo de archivos de texto.  Unidad fundamental de almacenamiento dentro del ámbito de la informática. Alberga un conjunto de datos que es posible leer,
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
6.2 Clasificación: Archivos de texto y binarios Docente: Ezequiel Vargas castillo Materia: Programación orientada a objetos Unidad: 6 Flujos y archivos.
Unidad VI Registros y Archivos Matlab Dr. J. D. Pope S. ITD.
Funciones de librerías C GNU/Linux Copyright (c) 2006, Jose Daniel Gutiérrez Porset
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
RubyNote ARCHIVOS EN RUBY HECHO POR: FRANCISCO ALVAREZ AGUILA.
Flujos de datos Un flujo es un canal por donde fluyen los datos.
Archivos en Java Unidad III – Programación Orientada a Objetos en Java Programación I
Introducción a la Programación Multimedial
Introducción a la Programación Multimedial
Arreglos y cadenas de texto
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Capítulo 13 Leer archivos JSON con AJAX
Olimpiadas Chilenas de Informática - Formación
Programación en C - manejo de Archivos
Conceptos básicos de programación
FUNCIONES Y PROCEDIMIENTOS
Métodos en Java.
Algunas Características de C++ no presentes en C
Arreglos. en Lenguaje C n
Usando StreamReader y StreamWriter
Informática Ingeniería en Electrónica y Automática Industrial
UNIVERSIDAD AUTONOMA METROPOLITANA Programación Estructurada
Unidad 7: Nivel Interno Algunos Conceptos Importantes
Algunas Características de C++ no presentes en C
Definición y Conversión de datos
Computación 2017 Archivos.
Tema 3. Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación.
Programación Orientada a Objetos
Usando StreamReader y StreamWriter
Usando StreamReader y StreamWriter
Lenguaje C.
PROGRAMACION: Que es un computador: Es un aparato electrónico que tiene el fin de recibir y procesar datos para realización de diversas operaciones..
Diego Hernández R Pascal Variables Diego Hernández R
LENGUAJE C.
Manejo de video y teclado
Programación I MC José Andrés Vázquez Flores
Unidad 7 Manejo de Archivos Copyright © 2005.
MC Beatriz Beltrán Martínez Otoño 2017
Curso de Programación Estructurada
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial
Tema 10b Manejo de archivos de caracteres en C. E/S para archivos Las funciones y tipos están definidos en FILE –Estructura que define un descriptor de.
Informática Ingeniería en Electrónica y Automática Industrial
Programación Modular Programación de Computadoras - Hugo Vega Grupo2: Reina Rodríguez Miriam Salluca.
Entrada y Salida en Prolog. Javier Alvarado Camas.
Transcripción de la presentación:

Programación en C - manejo de Archivos Programación I Curso: 5I T.T. Docente: Martin Marengo

Introducción Ya se podemos manejar gran cantidad de datos en un código, y diferente tipo al mismo tiempo (arrays y arrays de estructuras). El problema es que el programa retiene los datos mientras esté ejecutándose y se pierden al terminar la ejecución. La solución para hacer que los datos no se pierdan es almacenarlos en un fichero o archivo. Los archivos son medios que facilita el lenguaje para almacenar los datos en forma permanente, normalmente en los dispositivos de almacenamiento estándar.

Introducción Desde el punto de vista informático, un fichero es una colección de información que almacenamos en un soporte magnético para poder manipularla en cualquier momento. Esta información se almacena como un conjunto de registros.

Librería stdio.h 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 empiezan con la letra f, haciendo referencia a file. Adicionalmente se agrega un tipo FILE, el cual se usará como apuntador a la información del fichero. La secuencia que usaremos para realizar operaciones será la siguiente: Crear un apuntador del tipo FILE * Abrir el archivo utilizando la función fopen y asignándole el resultado de la llamada a nuestro apuntador. Hacer las diversas operaciones (lectura, escritura, etc). Cerrar el archivo utilizando la función fclose.

Punteros Para poder manejar archivos en C es oportuno utilizar un puntero predefinido por nosotros dirigido a una estructura FILE que es un tipo de dato específico definido en la librería < stdio.h >. El 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. Para obtener una variable de este tipo se utiliza una secuencia como esta: FILE *F;

Función FOPEN Esta función sirve para abrir y crear archivos en disco. El prototipo correspondiente de fopen es: Los parámetros de entrada de fopen son: filename: una cadena que contiene un nombre de fichero válido. opentype: especifica el tipo de fichero que se abrirá o se creará. Una lista de parámetros opentype para la función fopen son: "r" : abrir un archivo para lectura, el fichero debe existir. "w" : abrir un archivo para escritura, se crea si no existe o se sobreescribe si existe. "a" : abrir un archivo para escritura al final del contenido, si no existe se crea. "r+" : abrir un archivo para lectura y escritura, el fichero debe existir. "w+" : crear un archivo para lectura y escritura, se crea si no existe o se sobreescribe si existe. "r+b ó rb+" : Abre un archivo en modo binario para actualización (lectura y escritura). "rb" : Abre un archivo en modo binario para lectura.

Función 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. #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { FILE *fp; fp = fopen ( "fichero.txt", "r" ); if (fp==NULL) fputs ("File error",stderr); exit (1); } fclose ( fp ); return 0;

Función FEOF Esta función sirve para determinar si el cursor dentro del archivo encontró el final (end of file). 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). El prototipo correspondiente de feof es:

Función REWIND Literalmente significa "rebobinar", sitúa el cursor de lectura/escritura al principio del archivo. El prototipo correspondiente de rewind es:

Funciones de lectura Un archivo generalmente debe verse como un string (una cadena de caracteres) que esta guardado en el disco duro. Para trabajar con los archivos existen diferentes formas y diferentes funciones. Las funciones que podríamos usar para leer un archivo son: char *fgets(char *buffer, int tamano, FILE *archivo) int fscanf(FILE *fichero, const char *formato, argumento, ...); Las primeras dos de estas funciones son muy parecidas entre si. Pero la tercera, por el numero y el tipo de parámetros.

Función 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. El prototipo correspondiente de fgets es: 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.

Ejemplo Fgets #include <stdio.h> #include <stdlib.h> int main() { FILE *archivo; char caracteres[100]; archivo = fopen("prueba.txt","r"); if (archivo == NULL) exit(1); printf("\nEl contenido del archivo de prueba es \n\n"); while (feof(archivo) == 0) fgets(caracteres,100,archivo); printf("%s",caracteres); } system("PAUSE"); fclose(archivo); return 0;

Función 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). PARAMETROS: 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.

Funcion 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. El prototipo correspondiente de fscanf es:

Ejemplo Fscanf Podemos ver un ejemplo de su uso, abrimos el documento "fichero.txt" en modo lectura y leyendo dentro de el: #include <stdio.h> int main ( int argc, char **argv ) { FILE *fp; char buffer[100]; fp = fopen ( "fichero.txt", "r" ); fscanf(fp, "%s" ,buffer); printf("%s",buffer); fclose ( fp ); return 0; }

Funciones de escritura Así como podemos leer datos desde un fichero, también se pueden crear y escribir ficheros con la información que deseamos almacenar. Para trabajar con los archivos existen diferentes formas y diferentes funciones. Las funciones que podríamos usar para escribir dentro de un archivo son: int fputs(const char *buffer, FILE *archivo) int fprintf(FILE *archivo, const char *formato, argumento, ...);

Función 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. El prototipo correspondiente de fputs es:

Ejemplo Fputs #include <stdio.h> int main ( int argc, char **argv ) { FILE *fp; char cadena[] = "Mostrando el uso de fputs en un fichero.\n"; fp = fopen ( "fichero.txt", "r+" ); fputs( cadena, fp ); fclose ( fp ); return 0; }

Función 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. Podemos ver un ejemplo de su uso, abrimos el documento "fichero.txt" en modo lectura/escritura y escribimos dentro de el: #include <stdio.h> int main ( int argc, char **argv ) { FILE *fp; char buffer[100] = "Esto es un texto dentro del fichero."; fp = fopen ( "fichero.txt", "r+" ); fprintf(fp, buffer); fprintf(fp, "%s", "\nEsto es otro texto dentro del fichero."); fclose ( fp ); return 0; }