Manipulación de archivos estructurados

Documentos relacionados
Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Formatos para prácticas de laboratorio

Por ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma:

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Repaso 03: Manejo de Archivos en C

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

FILE *nombre_puntero_fichero; fopen(char_nombre_archivo,char_modo_apertura ); MODOS DE APERTURA. Abre un archivo de texto para lectura.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Lenguaje C Entrada y Salida de Datos. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Programación en Visual Basic Ricardo Rodríguez García

Sistemas Operativos. Curso 2016 Sistema de Archivos

Elementos de un programa en C

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Se guardan en archivos con extencion c y los cabezales con extension h

Programación. Test Autoevaluación Tema 3

PROGRAMACIÓN UNIDADES

funciones printf scanf

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

TIPOS DE DATOS BASICOS EN LENGUAJE C

Introducción a C++ y Code::Blocks

Programación Estructurada

Escuela Politécnica Superior de Elche

Programación estructurada (Introducción a lenguaje C)

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Estructuras de Datos Declaraciones Tipos de Datos

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

2.2 Nombres, Ligado y Ámbito

Entrada y Salida de Datos. Lectura de archivos.

Procesos e Hilos en C

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Tema 14: Arreglos estáticos en C

Lección 2 Introducción al lenguaje C

Apuntadores en C y C++

Unidad 7: Procesamiento de archivos en el lenguaje C

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Algoritmos y Programación I

Laboratorio de Arquitectura de Redes. Entrada y salida por archivos en lenguaje C

Programación Estructurada

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Lenguaje de Programación

VARIABLES LOCALES Y VARIABLES GLOBALES

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

Contenido. Capítulo 1. Introducción a lenguaje C 1

Lenguaje de programación C. Introducción

Definición de Memoria

Informática I para Bachillerato

INFORMATICA I EJERCICIOS PROPUESTOS Buscar en el diccionario Qué es INFORMÁTICA?, Qué es

LEER Y ESCRIBIR ARCHIVOS DE TEXTO CON PHP. FUNCIONES FOPEN (MODOS), FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00836B)

Tema 10: Tipos de datos definidos por el usuario

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Tema 13: Apuntadores en C

Informática Ingeniería en Electrónica y Automática Industrial

Tabla de Símbolos. Programación II Margarita Álvarez

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Estructura de Datos: Archivos

M. en E. Noemí López García

Programación I Ficheros de texto

Organización de la información en disco: archivos y carpetas

Practicas de Programación Estructurada. Clave: 12125

Las plantillas permiten definir funciones genéricas.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

INSTITUCION EDUCATIVA MANUEL ANGEL ANACHURY AREA: TECNOLOGIA E INFORMATICA

ESCUELA DE INFORMÁTICA

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.

20483 Programación en C#

Manual de usuario Mensajería Centro Virtual de Educación

TEMA 8: Gestión dinámica de memoria

El lenguaje C. 1. Estructuras. Principios de Programación Definicion de estructuras

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Contenido. Introducción Usando di Monitoring como un usuario normal Uso de di Monitoring como un operador de entrada de datos...

LENGUAJE. Tema 1 - Introducción

7. Manejo de Archivos en C.

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Instituto Tecnológico de Celaya

Tema 16: Tipos de datos estructurados en lenguaje C

Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

UNIDAD V: ARR R EGL G OS O BIDI D MENS N IONALE L S

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Tema 3. Aplicaciones de Tipo Consola

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Al concluir está práctica el estudiante será capaz de elaborar programas utilizando apuntadores y arreglos.

Entrada y salida en C. Informática II

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Punteros, Arreglos y Cadenas en C

Computación II. Introducción a Visual Basic

Tipos de Datos Estructurados

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura.

TIPOS DE DATOS BASICOS EN LENGUAJE C

COBHTTPD-CGILIB. Librería para creación de Paginas web Dinámicas con COBOL. Manual de Templates. COBHTTPD Manual de Templates

Transcripción:

Capítulo 1 Manipulación de archivos estructurados 1.1. Introducción Definición Un archivo es un medio de almacenamiento no volátil, es decir permanece luego de terminar la aplicación que la utiliza o luego de apagar el computador. Un archivo se almacena en memoria secundaria como el disco duro, cd, dvd, etc. Los archivos llevan asociado un nombre y una extensión, ésta última permite identificar el tipo del archivo, por ejemplo doc, jpg, bmp, cpp, etc. Los archivos estructurados se caracterizan por que almacenan los datos respetando un patrón específico que ocupa un determinado espacio. Una de las aplicaciones más comunes en la que se utiliza archivos estructurados es el de las bases de datos. Supongamos que deseamos almacenar datos de libros en un archivo, entonces los datos se estructurarán de acuerdo a lo que interesa almacenar de cada libro, en este caso podemos necesitar representar el título, autor, año de edición, ISBN y editorial. Entonces un conjunto de datos de varios libros se verán como en la figura 1.1. Cada uno de los libros en el archivo se representa por un registro. Todos los registros del archivo se almacenan siguiendo una estructura (struct en C o C++), discutiremos en la siguiente sección cómo crear una estructura para los registros, seguiremos usando el ejemplo del libro. 1.2. Estructuras (struct) Supongamos que tenemos la siguiente estructura para cada registro de libro: -------------------------------------------------- ISBN TITULO AUTOR ANIO EDICION EDITORIAL -------------------------------------------------- Lo primero es determinar el tipo de dato de cada elemento de la estructura, cada elemento se denomina campo, en el ejemplo hay 5 campos. 1

2 CAPÍTULO 1. MANIPULACIÓN DE ARCHIVOS ESTRUCTURADOS Figura 1.1: Vista lógica de un archivo de registros de libros. ISBN: un entero TITULO: cadena de 20 AUTOR: cadena de 20 ANIO EDICION: entero EDITORIAL: cadena de 20 La implementación en C o C++ es como sigue: typedef struct Libro int ISBN; char titulo[20]; char autor[20]; int anio; char editorial[20]; TLibro; donde TLibro se utiliza como un nuevo tipo de dato que representa un tipo para cada libro, entonces un libro en particular se puede definir como: LIBRO milibro; y para acceder a cada uno de sus campos utilizaremos el operador punto (.), por ejemplo: milibro.isbn=2344; milibro.titulo="c y C++"; milibro.autor="d. Ritchie"; milibro.anio=1999; milibro.editorial="alfa"; Ahora, utilizaremos un archivo para guardar cada registro, esto lo veremos en la siguiente sección.

1.3. OPERACIONES CON ARCHIVOS 3 1.3. Operaciones con archivos Para manipular un archivo utilizaremos el tipo FILE (en realidad crearemos un puntero de tipo FILE) y usaremos las siguientes funciones de stdlib.h. fopen: Para abrir un archivo y asociarlo con un puntero de tipo FILE. La sintaxis es como sigue: FILE *fopen(char *nombre, char *modo) donde nombre es el nombre del archivo, en el que se puede incluir la ruta y modo indica la forma en que puede usarse el archivo: w Para crear un archivo. r Para leer un archivo. a Para aadir datos al archivo. Ejemplo: FILE *f = fopen("libros.txt","r"); fread: Lee datos del archivo y los pasa a la memoria principal. fread(void *puntero, size_t tamanyo, size_t nmemb, FILE *f) donde puntero indica el espacio de memoria en dónde se almacenarán los datos, tamanyo es la cantidad de bytes a leer, nmemb es la cantidad de veces que se leerá (asumiremos igual a 1), y f representa el archivo. fwrite: Lee datos de la memoria principal y los pasa al archivo. fwrite(void *puntero, size_t tamanyo, size_t nmemb, FILE *f) donde puntero indica el espacio de memoria desde dónde se leeran los datos, tamanyo es la cantidad de bytes a escribir, nmemb es la cantidad de veces que se escribirán (asumiremos igual a 1), y f representa el archivo. fseek: Permite ubicarnos en cualquier posición del archivo para actualizar datos. int fseek(file *f, long int desplazamiento, int origen); La función fseek activa el indicador de posicin de ficheros de f y los desplaza seún el parámetro desplazamiento donde la posición inicial es origen. Se puede utilizar las constantes SEEK SET para indicar como origen el inicio, SEEK CUR en caso de que origen sea la posición actual y SEEK END si es el final. Frecuentemente desplazamiento es un valor obtenido mediante una llamada a la función ftell. Por ejemplo, si se tiene la posición de un registro X, entonces en cualquier momento podemos regresar a ubicarnos en ese registro y actualizar sus dato. ftell: La función ftell obtiene el valor actual del indicador de posición de fichero para un determinado archivo. long int ftell(file *f);

4 CAPÍTULO 1. MANIPULACIÓN DE ARCHIVOS ESTRUCTURADOS 1.4. Implementacion de las operaciones Siguiendo con nuestra política de implementar un programa modularmente, crearemos dos módulos, uno para guardar un registro y otro para reportar todos los registro del archivo. GUARDAR void guardarlibro(tlibro L, FILE *f) fwrite(&l,sizeof(tlibro),1,f); REPORTAR void reportarlibro(char *file) FILE *f=fopen(file,"r"); TLibro L; if (f!=null) fread(&l,sizeof(tlibro),1,f); while(!feof(f)) imprimir(l); fread(&l,sizeof(tlibro),1,f); else printf( "Error al abrir el archivo \n" ); exit(1); fclose(f); En el módulo anterior usamos la función feof() para determinar si ya se ha leído el final del archivo. Además usamos el módulo imprimir para mostrar los datos: void imprimir(tlibro L) printf("isbn : %s \n", L.ISBN); printf("titulo: %s \n", L.titulo); printf("anio : %s \n", L.autor); printf("anio : %d \n", L.anio); printf("anio : %s \n", L.editorial); 1.5. Implementación completa Se adjunta la implementación completa para guardar y reportar datos de un archivo.

1.6. EJERCICIOS 5 1.6. Ejercicios Utilizando el código base de la sección anterior, agregue lo necesario para que el programa soporte búsqueda de un libro por ISBN, es decir se da el ISBN y el programa debe devolver los datos completos del libro si lo encuentra o un mensaje de error si no se encuntra un libro con tal ISBN. Complete el código anterior de modo que su programa soporte modificación de datos. Por ejemplo supongamos que se desee modificar los datos del autor de un libro con ISBN determinado.