PROGRAMACIÓN ORIENTADA A OBJETOS



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

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

Entrada y salida de datos en C y C++

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

Fundamentos de Programación

Prof. Dr. Paul Bustamante

Uso de archivos en C++

7. Manejo de Archivos en C.

ALMACENAMIENTO PERSISTENTE DE DATOS

Entrada y Salida vía Archivos

Trataremos los principales aspectos de las operaciones de E/S en archivos.

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

Entrada/Salida en C++

Tema 2: La clase string

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

Guía resumida de referencia para exámenes

Tema 3: Ficheros en C++ Índice. Notas. Programación 2. Curso Notas

Tema 3: Ficheros en C++

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

Ampliación de Sistemas Operativos Trabajo voluntario Tema 1 Francisco Charte Ojeda ENTRADA/SALIDA EN C++

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Tema 3: Ficheros en C++

1. Gestión de E/S. 2. Clases básicas. 3. E/S estándar. 4. Manejo de ficheros. Entrada/Salida en C++

FICHEROS C++ TRANSVERSAL DE PROGRAMACIÓN BÁSICA

Examen escrito de Programación 1

Clase 4: Un poco más de Python

Modulo 1 El lenguaje Java

FACULTAD DE INGENIERÍA

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

Formatos para prácticas de laboratorio

Prof. Dr.Paul Bustamante

Manejo de archivos en C++

LnxComm. Linux Communication. Fernando Pujaico Rivera

BIBLIOTECA DE CLASES ANSI/ISO C++

Clase 3: Archivos (texto, csv, dbf, Excel)

Tema 2. El lenguaje de programación Java (Parte 1)

<<Streams>> y Strings. en C++

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

1 Estructura básica de un programa C++

Programación Estructurada

Preliminares. Tipos de variables y Expresiones

ARCHIVOS. 1. Introducción. 2. Definición de archivo. 3. Archivos de acceso secuencial. 4. Gestión de un archivo secuencial de estructuras

Introducción al tipo de dato ARRAY

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

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

PROGRAMACIÓN AVANZADA. Prácticas de Problemas. Introducción

Tema 8: Tratamiento de datos. Ficheros

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Información sobre la configuración de una aplicación para transmitir datos ASCII por puerto serie, con pantallas terminales Magelis.

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Buses y Periféricos 2006/2007 Práctica 3. Ensamblador

Archivos de Disco. Manejo de la clase fstream

Academia técnica de computación A.T.C.

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

TEMA II: REPRESENTACIÓN DE LA INFORMACIÓN

Tema 5 Archivos o Ficheros

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Temario detallado. Conceptos generales de lenguajes y compiladores. Proceso de compilación de un programa en C++ bajo Code::Blocks

Tema 5 Archivos o Ficheros

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

Introducción a la programación con sockets en C

PROGRAMACIÓN ORIENTADA A OBJETOS

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

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

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

Computación archivos

SOLUCION EXAMEN junio 2006

Prof. Dr. Paul Bustamante

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Programación 1 Tema 16. Trabajo con ficheros: otras posibilidades

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

FUNDAMENTOS DE INFORMÁTICA

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

Entrada y salida de datos. Informática aplicada al medio ambiente curso 2010/2011

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A.

Ficheros de acceso aleatorio

1 ELEMENTOS BASICOS DEL LENGUAJE

Práctica 2 Gráficos Vectoriales con SVG (versión )

Anexo B. Comunicaciones entre mc y PC

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

Árboles. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

LENGUAJE. Tema 1 - Introducción

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Programación 1 Tema 16. Trabajo con ficheros: otras posibilidades

SERIE DE EJERCICIOS 3

PART II: Moviendo al jugador

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Recursos predefinidos en C++ que son utilizados en la asignatura Cláusula include Recursos predefinidos visibles Observaciones

Examen Principios de Programación Febrero 2012

Tipos primitivos y clases de interés

Prof. Dr. Paul Bustamante

Transcripción:

PROGRAMACIÓN ORIENTADA A OBJETOS Operaciones con ficheros en Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba Curso académico 2011-2012 Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 1 / 41

Contenido del tema 1 Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 2 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 3 / 41

de cabecera de cabecera #include<iostream> #include<fstream> Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 4 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 5 / 41

Declaración de flujos Declaración de flujos ifstream entrada; ofstream salida; fstream entrada salida; Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 6 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 7 / 41

Apertura de ficheros Apertura de un fichero void ifstream::open (const char * filename, int ios::openmode mode = ios::in); void ofstream::open (const char * filename, int ios::openmode mode= ios::out ios::trunc); void fstream::open (const char * filename, int ios::openmode mode= ios::in ios::out); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 8 / 41

Apertura de ficheros Modos de apertura de un fichero (1/2) ios::in: abre un fichero en modo de entrada (lectura). Si el fichero no existe, falla la apertura ios::out: abre un fichero en modo de salida (escritura). Si el fichero existe, lo vacia. ios::binary: abre un fichero en modo binario Por defecto, los ficheros son abiertos en modo texto. En modo texto, se puede producir la conversión de algunos caracteres: salto de ĺınea, retorno de carro, etc. Cualquier fichero puede ser abierto en modo texto o en modo binario. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 9 / 41

Apertura de ficheros Modos de apertura de un fichero (2/2) ios::trunc: descarta el contenido del fichero si es que existe; es la acción predeterminada de ios::out ios::app: la escritura en el fichero siempre se realiza al final. ios::ate: abre el fichero y se sitúa al final del fichero. Los datos pueden leerse o escribirse en cualquier parte del fichero. El significado de ate es at end, al fin. ios::nocreate: si no existe el fichero entonces genera un error. ios::noreplace: si existe el fichero entoces genera un error Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 10 / 41

Apertura de ficheros Combinación de modos de apertura de un fichero ios::in ios::out: abre un fichero para lectura y escritura. Si el fichero no existe, falla la apertura ios::in ios::binary: abre un fichero para lectura en modo binario. Si el fichero no existe, falla la apertura ios::in ios::out ios::trunc: abre un fichero para lectura y escritura. Si el fichero no existe, lo crea. Si el fichero existe, lo vacia. ios::out ios::app: abre un fichero para añadir. Si el fichero no existe, lo crea. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 11 / 41

Apertura de ficheros Ejemplo (Apertura de ficheros de entrada o lectura) ifstream entrada1, entrada2; entrada1.open( fichero entrada1,ios::in); entrada2.open ( fichero entrada2 ); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 12 / 41

Apertura de ficheros Ejemplo (Apertura de ficheros de salida o escritura) ofstream salida1, salida2; salida1.open( fichero salida1,ios::out ios::trunc); salida2.open ( fichero salida2 ); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 13 / 41

Apertura de ficheros Ejemplo (Apertura de ficheros de entrada y salida) fstream entrada salida1, entrada salida2; entrada salida1.open( fichero salida1,ios::in ios::out); entrada salida2.open( fichero salida2 ); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 14 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 15 / 41

Declaración de flujo y apertura de un fichero Declaración de flujo y apertura de un fichero ifstream entrada ( nombre fichero ); ofstream salida( nombre fichero ); fstream entrada salida( nombre fichero ); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 16 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 17 / 41

Existencia de un fichero Existencia de un fichero Si la función open no puede abrir un fichero entonces el flujo tomará el valor false Ejemplo ifstream entrada; entrada.open( fichero entrada,ios::in); if (!entrada) cout << No se puede abrir el fichero ; Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 18 / 41

Existencia de un fichero Existencia de un fichero Si la función open no puede abrir un fichero entonces el flujo tomará el valor false Ejemplo ifstream entrada; entrada.open( fichero entrada,ios::in); if (!entrada) cout << No se puede abrir el fichero ; Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 19 / 41

Existencia de un fichero Existencia de un fichero La función is open devuelve true si el fichero está abierto y false en caso contrario Ejemplo ifstream entrada; entrada.open( fichero entrada,ios::in); if (!entrada.is open()) cout << No se puede abrir el fichero ; Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 20 / 41

Existencia de un fichero Existencia de un fichero La función is open devuelve true si el fichero está abierto y false en caso contrario Ejemplo ifstream entrada; entrada.open( fichero entrada,ios::in); if (!entrada.is open()) cout << No se puede abrir el fichero ; Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 21 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 22 / 41

Cierre de ficheros Cierre de un fichero void close(); Ejemplo entrada1.close(); salida1.close(); entrada salida1.close(); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 23 / 41

Cierre de ficheros Cierre de un fichero void close(); Ejemplo entrada1.close(); salida1.close(); entrada salida1.close(); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 24 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 25 / 41

Lectura y escritura en ficheros de texto Lectura y escritura en ficheros de texto Método más sencillo: utilizar los operadores << y >>. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 26 / 41

Lectura y escritura en ficheros de texto Ejemplo (Escritura en un fichero de texto) // Declaracion ofstream flujo salida; // Apertura del fichero flujo salida.open( prueba.txt ); // Escritura en el fichero flujo salida << 10 << << 19.75 << X ; flujo salida << Final del programa ; // Cierre del fichero flujo salida.close(); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 27 / 41

Lectura y escritura en ficheros de texto Ejemplo (Lectura de un fichero de texto) char caracter; float f; int i; char cadena[80]; // Declaracion ifstream flujo entrada; // Apertura del fichero flujo entrada.open( prueba.txt ); // Lectura del fichero de texto: entero, real y caracter flujo entrada >> i >> f >> caracter; // Lee hasta que encuentra el primer caracter blanco flujo entrada >> cadena; // Cierre del fichero flujo entrada.close(); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 28 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 29 / 41

Lectura y escritura en ficheros binarios Lectura de ficheros binarios (1/5) get: istream & get (char & caracter); Lee un carácter (byte) del flujo de entrada y lo almacena en el parámetro formal caracter int get (); Lee un carácter (byte) del flujo de entrada y devuelve su código ASCII Se utiliza para detectar el final de archivo (eof) que se suele representar por -1 Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 30 / 41

Lectura y escritura en ficheros binarios Lectura de ficheros binarios (2/5) get: istream & get (char *buffer, int numero, char delimitador = \n ); Lee caracteres del flujo de entrada y los almacena en buffer hasta que haya leído numero - 1 caracteres o el carácter delimitador o se haya encontrado el final del fichero. Se añade el carácter nulo al final de buffer. Si se encuentra el carácter delimitador, no es extraído, sino que permanece en el flujo de entrada hasta la siguiente operación de lectura. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 31 / 41

Lectura y escritura en ficheros binarios Lectura de ficheros binarios (3/5) void getline(char *buffer, int numero, char delimitador = \n ); Lee cadenas de caracteres, incluyendo espacios en blanco, y las almacena en buffer Nota La diferencia entre get y getline se encuentra en que getline almacena el carácter delimitador en la cadena antes de añadir el carácter nulo. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 32 / 41

Lectura y escritura en ficheros binarios Lectura de ficheros binarios (4/5) read: lee numero bytes y los almacena en buffer istream & read(char *buffer, int numero); istream & read(unsigned *buffer, int numero); istream & read(signed char *buffer, int numer); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 33 / 41

Lectura y escritura en ficheros binarios Lectura de ficheros binarios (5/5) istream & putback (char caracter); Devuelve al flujo de entrada el último carácter leído. int peek(): Lee el carácter actual del flujo de entrada pero no avanza. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 34 / 41

Lectura y escritura en ficheros binarios Escritura en ficheros binarios ostream & put (char caracter); Escribe un carácter (byte) en el flujo de salida write: escribe numero bytes de buffer en el flujo de salida ostream & write(const char *buffer, int numero); ostream & write(const unsigned *buffer, int numero); ostream & write(const signed char *buffer, int numero); Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 35 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 36 / 41

Posicionamiento en un fichero Posicionamiento en un fichero de lectura seekg: istream & seekg(streampos pos); Posiciona el cursor de lectura en el lugar indicado por pos istream & seekg(streamoff desp, seek dir dir); Desplaza el cursor de lectura el número de bytes indicados por desp teniendo en cuenta la dirección especificada por dir: beg, cur, end (principio, posición actual y final del fichero). streampos tellg(); Devuelve la posición actual del flujo de entrada o -1 si se produce un error. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 37 / 41

Posicionamiento en un fichero Posicionamiento en un fichero de escritura seekp: ostream & seekp(streampos pos); Posiciona el cursor de escritura en el lugar indicado por pos ostream & seekp(streamoff desp, seek dir dir); Desplaza el cursor de escritura el número de bytes indicados por desp teniendo en cuenta la dirección especificada por dir: beg, cur, end (principio, posición actual y final del fichero). streampos tellp(); Devuelve la posición actual del flujo de salida o -1 si se produce un error. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 38 / 41

Contenido de la sección 1 de cabecera Declaración de flujos Apertura de ficheros Declaración de flujo y apertura de un fichero Existencia de un fichero Cierre de ficheros Lectura y escritura en ficheros de texto Lectura y escritura en ficheros binarios Posicionamiento en un fichero Otras funciones de ficheros Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 39 / 41

Otras funciones de ficheros Otras funciones bool eof() const; Devuelve true si se ha alcanzado el final del archivo; en caso contrario, devuelve false bool good() const; Indica si la operación de lectura anterior ha tenido éxito. bool fail() const; Indica que la siguiente operación de lectura fallará. bool bad() const; El flujo de entrada está corrompido. Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 40 / 41

Muchas gracias Universidad de Córdoba: Escuela Politécnica Superior Grado en Ingeniería Informática 41 / 41