ALMACENAMIENTO PERSISTENTE DE DATOS



Documentos relacionados
Contenidos. Archivos en C++ Archivos en C++ Introducción

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

Uso de archivos en C++

PROGRAMACIÓN ORIENTADA A OBJETOS

Entrada y salida de datos en C y C++

Examen escrito de Programación 1

#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );

Programación 1 Tema 13. Entrada y salida de datos

Prof. Dr. Paul Bustamante

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Fundamentos de la programación

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso Notas. Ejemplo. La herramienta make. 1 Diseño modular.

Examen escrito de Programación 1

Entrada y Salida vía Archivos

7. Manejo de Archivos en C.

Examen de prácticas de Programación 1

Examen escrito de Programación 1

Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas

Fundamentos de la programación

Programación 1 Tema 7. Desarrollo modular y descendente de programas

Los lenguajes como C y C++ no definen una forma estandar de imprimir.

Tema: Clases y Objetos en C++.

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

Tema 2: La clase string

Tema 5 Archivos o Ficheros

Programación 1 Tema 5. Instrucciones simples y estructuradas

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

Programación 1 Tema 15. Trabajo con ficheros binarios

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

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

Contenido. Práctica 1. Configuración de sistemas operativos. Vista clásica. Configuración y personalización

Programación 1 Tema 5. Instrucciones simples y estructuradas

Tema: Arreglos de Objetos en C++.

Programación 1 Problemas del Composición condicional

Programación 1 Problemas 3. Composición condicional

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Introducción a C++. Asignatura Estructuras de Datos Curso 2017/2018 ETSISI UPM

Curso 0 de Informática

Examen Principios de Programación Febrero 2012

Práctica 8: Barreras

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

1. Juego del Ahorcado

Información del Producto: XenData X2500 LTO-6 Digital Video Archive System

Fundamentos de Programación con el Lenguaje de Programación C++

Metodología de la Programación II. Recursividad

CURSO 2º GRUPO Junio 2011

Introducción al laboratorio de Programación I

Preliminares. Tipos de variables y Expresiones

Realización de Backups

PROGRAMACIÓN ORIENTADA A OBJETOS

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Tema: Herencia Simple y Múltiple en C++.

Tema 4: Estructuras de Control Estructura y Contenidos

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Fundamentos de la Programación

Introducción a Matlab.

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005

En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Fundamentos de Programción (I)

Fundamentos de la Programación Orientada a Objetos Definición de Clases

MISIÓN UNIVERSIDAD DEL ISTMO VICERRECTORIA ACADÉMICA PROGRAMA ANALÍTICO

Cátedra I Informática Autor I Carlos Bartó

FUNDAMENTOS BÁSICOS DE PROGRAMACIÓN EN C++

Pseudolenguaje. (1 byte) (valores códigos ASCII) [CHAR_MIN.. CHAR_MAX] (Definida en <limits.h>) No hay. Dominio n 1 [MIN(C)..

UF0513 Gestión auxiliar de archivo en soporte convencional o informático

Administración de la producción. Sesión 2: Sistema Operativo (Microsoft Windows XP)

Hoja de ejercicios del Tema 3

Hoja de ejercicios del Tema 3

Entrada salida y comunicación

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

TECNOLOGÍAS DE LA INFORMACIÓN. La sociedad de la información y las nuevas tecnologías.

Transcripción:

UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación ALMACENAMIENTO PERSISTENTE DE DATOS Tema 1 Programación II Programación II 0 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS 1. Introducción. Conceptos básicos 2. Entrada y Salida de Datos Asociadas a Ficheros 3. Entrada de Datos desde Ficheros de Texto 4. Salida de Datos a Ficheros de Texto 5. Ejemplo 6. Bibliografía Programación II 1 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

INTRODUCCIÓN. CONCEPTOS BÁSICOS (I) Almacenamiento de Datos en el Ordenador Memoria Principal: (acceso directo de la CPU) Tiempo de acceso muy rápido Almacenamiento no persistente: volátil Capacidad de almacenamiento limitada Memoria Secundaria: (discos duros, discos ópticos, memorias USB, etc.) Tiempo de acceso lento Almacenamiento persistente Gran capacidad de almacenamiento Programación II 2 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

INTRODUCCIÓN. CONCEPTOS BÁSICOS (II) Organización de la Memoria Secundaria (gran capacidad de almacenamiento) Sistema de Ficheros Jerarquía de Directorios (Carpetas) y Ficheros Directorios: organizan jerarquicamente el sistema de ficheros Directorios, subdirectorios y ficheros Ficheros: almacenamiento persistente de información Datos: información, configuraciones, código fuente Software: bibliotecas y programas ejecutables raiz bin src system.cfg gedit g++ agenda.cpp agenda agenda.txt Programación II 3 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

INTRODUCCIÓN. CONCEPTOS BÁSICOS (III) Almacenamiento de la Información: Tipos de Ficheros Ficheros de Texto Codificación textual: secuencia de caracteres (ASCII) (Conversión) Procesamiento orientado a ordenador (también humano) Representan información muy diversa (editor de textos) Ficheros Binarios Codificación binaria: secuencia de bytes (rep. interna del ordenador) Procesamiento orientado a ordenador (problemas de compatibilidad) Representan información binaria (programas, imágenes, música, etc.) Programación II 4 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS 1. Introducción. Conceptos básicos 2. Entrada y Salida de Datos Asociadas a Ficheros 3. Entrada de Datos desde Ficheros de Texto 4. Salida de Datos a Ficheros de Texto 5. Ejemplo 6. Bibliografía Programación II 5 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

ENTRADA Y SALIDA DE DATOS ASOCIADAS A FICHEROS (I) Entrada y Salida de Datos a Través de Flujos (Streams) Flujos estándares de entrada y salida: cin y cout Flujo de entrada: fuente que proporciona una secuencia de caracteres Flujo de salida: sumidero que recibe una secuencia de caracteres Un manejador de fichero: variable que vincula un flujo de datos con un determinado fichero Toda la transferencia de información se realiza a través de los manejadores de ficheros (a través de buffers). Datos (cin) PROGRAMA (cout) Datos Pepe 111 Maria 222 Juan 333 agenda.txt Datos (f_entrada) (f_salida) Datos Pepe 444 Maria 666 Juan 555 agenda.txt Programación II 6 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

ENTRADA Y SALIDA DE DATOS ASOCIADAS A FICHEROS (II) Procesamiento de Ficheros en un Programa C++ 1. Incluir biblioteca <fstream> (espacio de nombres std) 2. Declarar variable (manejador de fichero) de tipo de flujo (ifstream, ofstream) 3. Abrir el manejador de fichero: vincula el flujo con fichero (flujo.open(...)) 4. Comprobar apertura correcta (flujo.fail()) 5. Transferencia de información (operadores de E/S) (>>, <<, get, getline, ws, ignore) 6. Comprobar transferencia de información correcta (flujo.fail(), flujo.eof()) 7. Cerrar el manejador de fichero: desvincula el flujo con el fichero (flujo.close()) Si el estado del flujo es erróneo, entonces cualquier operación de entrada o salida que se realice sobre él también fallará. Paso de parámetros por referencia de variables manejadoras de ficheros Programación II 7 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS 1. Introducción. Conceptos básicos 2. Entrada y Salida de Datos Asociadas a Ficheros 3. Entrada de Datos desde Ficheros de Texto 4. Salida de Datos a Ficheros de Texto 5. Ejemplo 6. Bibliografía Programación II 8 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

ENTRADA DE DATOS DESDE FICHEROS DE TEXTO (I) #include <iostream> #include <fstream> using namespace std; void leer_fich(const string& nombre_fichero, bool& ok) { ifstream f_ent ; // Manejador de Fichero de Entrada f_ent.open(nombre_fichero.c_str()); // Apertura del Flujo de Entrada if ( f_ent.fail() ) { // Apertura Correcta? ok = false ; else { int numero ; f_ent >> numero ; // Entrada de datos (Control del Buffer) while (! f_ent.fail() ) { // Lectura Correcta? cout << numero << endl ; f_ent >> numero ; // Entrada de datos (Control del Buffer) ok =! f_ent.fail() f_ent.eof(); // Fin de Fichero? (End-of-File) f_ent.close() ; // Cierre del Flujo de Entrada int main() { bool ok ; leer_fich("datos.txt", ok) ; if (! ok ) { cout << "Error procesamiento de fichero" << end ; Programación II 9 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

ENTRADA DE DATOS DESDE FICHEROS DE TEXTO (II) #include <iostream> #include <fstream> using namespace std; void leer_fich(const string& nombre_fichero, Vector& dat, bool& ok) { ifstream f_ent ; // Manejador de Fichero de Entrada f_ent.open(nombre_fichero.c_str()); // Apertura del Flujo de Entrada if ( f_ent.fail() ) { // Apertura Correcta? ok = false ; else { int numero ; ok = true ; f_ent >> numero ; // Entrada de datos (Control del Buffer) while (! f_ent.fail() && ok) { // Lectura Correcta? insertar(dat, numero, ok) ; f_ent >> numero ; // Entrada de datos (Control del Buffer) ok = ok && (! f_ent.fail() f_ent.eof() ); // Fin de Fichero? (End-of-File) f_ent.close() ; // Cierre del Flujo de Entrada void insertar(vector& dat, int num, bool& ok) int main() { { if (dat.nelms == int(dat.elm.size())) { bool ok ; ok = false ; Vector dat ; dat.nelms = 0 ; else { leer_fich("datos.txt", dat, ok) ; ok = true ; if (! ok ) { dat.elm[dat.nelms] = num ; cout << "Error" << end ; ++dat.nelms ; else {... Programación II 10 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS 1. Introducción. Conceptos básicos 2. Entrada y Salida de Datos Asociadas a Ficheros 3. Entrada de Datos desde Ficheros de Texto 4. Salida de Datos a Ficheros de Texto 5. Ejemplo 6. Bibliografía Programación II 11 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

SALIDA DE DATOS A FICHEROS DE TEXTO (I) #include <iostream> #include <fstream> using namespace std; void escribir_fich(const string& nombre_fichero, bool& ok) { ofstream f_sal ; // Manejador de Fichero de Salida f_sal.open(nombre_fichero.c_str()); // Apertura del Flujo de Salida if ( f_sal.fail() ) { // Apertura Correcta? ok = false ; else { int numero ; cin >> numero ; while ((numero > 0) &&! cin.fail() &&! f_sal.fail()) { // Flujo Correcto? f_sal << numero << endl ; // Salida de datos (SEPARADORES ADECUADOS) cin >> numero ; ok =! f_sal.fail() ; // Salida Correcta? f_sal.close() ; // Cierre del Flujo de Salida int main() { bool ok ; escribir_fich("datos.txt", ok) ; if (! ok ) { cout << "Error escritura de fichero" << end ; Programación II 12 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

SALIDA DE DATOS A FICHEROS DE TEXTO (II) #include <iostream> #include <fstream> using namespace std; void escribir_fich(const string& nombre_fichero, const Vector& dat, bool& ok) { ofstream f_sal ; // Manejador de Fichero de Salida f_sal.open(nombre_fichero.c_str()); // Apertura del Flujo de Salida if ( f_sal.fail() ) { // Apertura Correcta? ok = false ; else { for (int i = 0; (i < dat.nelms) &&! f_sal.fail(); ++i) { // Hay Datos? Flujo Correcto? f_sal << dat.elm[i] << endl ; // Salida de datos (SEPARADORES ADECUADOS) ok =! f_sal.fail() ; // Salida Correcta? f_sal.close() ; // Cierre del Flujo de Salida int main() { bool ok ; Vector dat; // actualizar dat con datos adecuados escribir_fich("datos.txt", dat, ok) ; if (! ok ) { cout << "Error" << end ; else {... Programación II 13 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS 1. Introducción. Conceptos básicos 2. Entrada y Salida de Datos Asociadas a Ficheros 3. Entrada de Datos desde Ficheros de Texto 4. Salida de Datos a Ficheros de Texto 5. Ejemplo 6. Bibliografía Programación II 14 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

EJEMPLO Programa que gestione una agenda personal (nombres y teléfonos de personas) y permita tanto guardar como cargar los datos a/desde un fichero. El programa mostrará un menú para seleccionar las acciones deseadas. Programación II 15 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS

Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS 1. Introducción. Conceptos básicos 2. Entrada y Salida de Datos Asociadas a Ficheros 3. Entrada de Datos desde Ficheros de Texto 4. Salida de Datos a Ficheros de Texto 5. Ejemplo 6. Bibliografía Programación II 16 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS