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



Documentos relacionados
PROGRAMACIÓN ORIENTADA A OBJETOS

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

Prof. Dr. Paul Bustamante

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

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

Entrada y salida de datos en C y C++

Uso de archivos en C++

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

Tema 3: Ficheros en C++

9 GESTIÓN BÁSICA DE FICHEROS. Contenido

ALMACENAMIENTO PERSISTENTE DE DATOS

Examen escrito de Programación 1

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

1 Estructura básica de un programa C++

Tema 3: Ficheros en C++

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

Introducción al laboratorio de Programación I

Fundamentos de Programación

7. Manejo de Archivos en C.

Introducción al tipo de dato ARRAY

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

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

Formatos para prácticas de laboratorio

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

Tema 2: La clase string

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

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

! Una variable declarada con final no puede volver a ser reinicializada. numero = 2;! ! Para definir constantes

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

SOLUCION EXAMEN junio 2006

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

Programación 1 Tema 15. Trabajo con ficheros binarios

Preliminares. Tipos de variables y Expresiones

Modulo 1 El lenguaje Java

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

Clase 4: Un poco más de Python

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

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

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

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

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

MANUAL DE AYUDA MÓDULO PDA ALMACEN E INVENTARIO

Prof. Dr. Paul Bustamante

1. Visualización de datos con Octave

Entrada y Salida vía Archivos

Cadenas (strings) y Estructuras

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

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

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

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.

Anexo B. Comunicaciones entre mc y PC

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

Estructuras de repetición

FUNDAMENTOS DE PROGRAMACIÓN. 1º ING. INFORMÁTICA (Plan 2000) 1ª Convocatoria. 21 de Enero de 2002

Prof. Dr. Paul Bustamante

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Vectores y matrices. Fundamentos de Programación Fundamentos de Programación I

Desde la pantalla de Ventas TPV Multilíneas (VE200001) se habilita un nuevo botón llamado Abono Parcial que realizará lo siguiente:

MANUAL DE USUARIO APP NFCSOS

Archivos de Disco. Manejo de la clase fstream

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Creación de Funciones de Conducción

Gestión de Retales WhitePaper Noviembre de 2009

SIIGO Pyme. Templates. Cartilla I

Instituto Tecnológico de Celaya

Programación 1 Tema 15. Trabajo con ficheros binarios

Programación básica C++

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

Mi primer proyecto en Dev-C++

Ahora después de ver las múltiples herramientas de desarrollo de ABAP, podemos ver los detalles del lenguaje:

Curso PHP Módulo 1 R-Luis

Recursos de Aprendizaje

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

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

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

Carmen. Estándares de codificación. Manuel Arias Calleja

Estructuras de repetición hacer-mientras y repita hasta

Práctica 3: Funciones

Práctica 2: Simón dice

LENGUAJE. Tema 1 - Introducción

Tema 5 Archivos o Ficheros

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

Introducción a la programación orientada a objetos

Curso 0 de Informática

Vectores. 27/05/05 Programación Digital I 1

Tema 5 Archivos o Ficheros

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

Prof. Dr. Paul Bustamante

Manejo de Archivos en Lenguaje C++

1 ELEMENTOS BASICOS DEL LENGUAJE

Prof. Dr. Paul Bustamante

Transcripción:

ARCHIVOS EN C++ = FLUJOS DE ENTRADA/SALIDA. Ejemplo: cin y cout Tipos de ficheros: DE TEXTO y BINARIOS Biblioteca de gestión de ficheros (a incluir en los programas) #include <fstream.h> Apertura de ficheros (1) : Ficheros de entrada o salida. (A) Como fichero de entrada: Para ello empleamos la sentencia ifstream descriptor ( nombre.extensión ); (B) Como fichero de salida: Para ello empleamos la sentencia ofstream descriptor ( nombre.extensión ); Comentario: EMPLEAR EL DESCRIPTOR A PARTIR DE AQUÍ.

Apertura de ficheros (2) : Ficheros de entrada o salida. PRIMERO: declaramos la dirección del flujo de entrada ifstream descriptor; // Para ficheros de entrada ofstream descriptor; // Para ficheros de salida SEGUNDO: Asociamos el descriptor de ficheros al fichero en sí. descriptor.open( nombre.extensión,int modo); Donde modo puede ser una combinación (empleando ) de lo siguiente: ios:: in // Modo entrada ios:: out // Modo salida (por defecto) ios:: app // Modo añadir, o sea, posicionar el cursor del fichero (ver abajo) // al final del fichero antes de cada escritura ios:: binary // El archivo se abre en modo binario ios:: ate // El archivo se abre y el cursor se posiciona al final ios:: nocreate // Genera un error si el fichero no existe ios:: noreplace // Genera un error si el fichero existe ya Apertura de ficheros (3) : Combinando ambas formas ifstream descriptor( nombre.extensión,int modo); ofstream descriptor( nombre.extensión,int modo); // para entrada // para salida!

Ejemplo : Las dos líneas siguientes abren el fichero mio.txt como fichero de entrada (para lectura) y lo asocian al descriptor in. ifstream in; in.open( mio.txt ); // descriptor del fichero a abrir // Apertura del fichero; Esas dos líneas equivalen a la siguiente: ifstream in ( mio.txt ); // Apertura del fichero; Ejemplo : Para abrir el fichero salida.dat en modo modo salida (si el fichero no existe lo crea, y si existe borra su contenido) asociándolo al descriptor out podemos usar la siguiente sentencia; o la siguiente o también ofstream out("salida.txt"); ofstream out("salida.txt", ios::out); ofstream out; out.open("salida.txt"); "

Ficheros de entrada/ salida (1): Declaración-apertura fstream descriptor; descriptor.open( nombrefichero.ext, ios::in ios::out) Ficheros de entrada/ salida (1): Declaración-apertura fstream descriptor( nombre.extensión,ios::in ios:: out); entrada-salida // para Comprobación de apertura correcta. if (descriptor){ \\Buen estado. Continuamos \\ operando sobre el fichero... if (! descriptor){ \\ Mal estado. Escribimos un mensaje \\ a la salida estándar cout << Error en la apertura... Ejemplo: ifstream in("f1.dat"); if (!in) { cout << "\n Incapaz de crear este o abrir el fichero "; // salida estándar cout << " para salida " << endl; else {... // Se opera sobre el fichero Cierre de ficheros. descriptor.close() #

Detección de fin de fichero y otras funciones. descriptor.función(); Donde función es una de las siguientes: La función eof() que devuelve un valor distinto de cero si se ha alcanzado el final del fichero. LECTURA ADELANTADA!! La función fail(). La función good() LECTURA-ESCRITURA EN FICHEROS DE TEXTO: con << y >>. Comentario: El operador << omite los espacios en blanco. Ejemplo : El siguiente programa escribe tres líneas en un fichero llamado EJEMPLO5.TXT que se crea en el programa (si ya existe borramos su contenido). Cada línea consta de un entero, un real y una cadena de caracteres. Los datos en cada línea están separados por espacios en blanco. #include <fstream.h> // Biblioteca para el manejo de ficheros #include <iostream.h> // Bibliooteca para la entrada-salida estándar int main(){ ofstream fichout("ejemplo5.txt",ios::out); if (!fichout) cout << "\n Incapaz de crear este o abrir el fichero \n"; else { fichout << 1 << " " << 5.0 << " APROBADO" << endl; fichout << 2 << " " << 1.1 << " SUSPENSO" << endl; fichout << 3 << " " << 8.0 << " NOTABLE " << endl; fichout.close(); // Fin del main $

Ejemplo : El siguiente programa lee el fichero de texto llamado EJEMPLO5.TXT y visualiza su contenido en el monitor. #include <fstream.h> // Libreria para el manejo de ficheros #include <iostream.h> typedef char TCadena[30]; int main(){ int i; char c; float r; TCadena cad; ifstream fichin("ejemplo5.txt"); // declaracion y apertura del fichero if (!fichin) cout << "\n Incapaz de crear este o abrir el fichero "; else{ fichin >> i; // Observese la lectura adelantada!!! while (!fichin.eof()){ cout << i << " "; fichin >> r; cout << r << " "; fichin >> cad; cout << cad << "\n"; fichin >> i; fichin.close(); // Fin del main %

FICHEROS BINARIOS. Lectura byte a byte. descriptor.get(ch); Escritura byte a byte. descriptor.put(ch); El siguiente programa escribe un texto (byte a byte) en el fichero Ejemplo8.dat. #include <fstream.h> #include <iostream.h> int main(){ char cad[17]="texto A ESCRIBIR"; ofstream fichout("ejemplo8.dat", ios::out ios::binary); if (!fichout) cout << "\n Incapaz de Crear o Abrir el fichero "; else{ for (int i=0;i<=16;i++) fichout.put(cad[i]); // Escritura en el fichero fichout.close(); // Fin del main &

FICHEROS BINARIOS. Escritura por bloque de bytes. descriptor.read(&c, num); Escritura por bloque de bytes. Descriptor.write(&c, num); Recomendación: Usar sizeof() y pasar c por referencia Acceso aleatorio a ficheros. seekg(pos) y seekp(pos) mueven la posición del cursor del fichero a la posición relativa del fichero indicada por pos, donde pos es un entero (o variable conteniendo un entero). tellg() y tellp() devuelven la posición relativa actual del cursor asociado al fichero de entrada y devuelve un 1 en caso de existir algún error. Ficheros pasados como argumentos: POR REFERENCIA!!. '

El siguiente programa declara el fichero F.dat para entrada-salida, graba en dicho fichero el valor 1234.86 en binario y después los veinte primeros enteros. Posteriormente, lee el fichero visualizando su información en la salida estándar (el monitor). #include <fstream.h> #include <iostream.h> int main(){ float R=1234.86; int i,n; fstream fichbin("f.dat",ios::binary ios::out); // Apertura como salida fichbin.write(&r,sizeof(float)); for (i=1;i<=20;i++) fichbin.write(&i,sizeof(int)); fichbin.close(); fichbin.open("f.dat",ios::binary ios::in); fichbin.read(&r,sizeof(float)); cout <<endl << "R= " << R << endl; for (i=1;i<=20;i++){ fichbin.read(&n,sizeof(float)); cout <<endl << i << "= " << N << endl; // Fin del main // Apertura como entrada (

El siguiente programa almacena en un fichero los 10 primeros enteros, luego muestra por pantalla el quinto entero (o sea el 5), posteriormente lo reemplaza por el valor 100, y al final visualiza en el monitor el contenido del fichero. #include <fstream.h> #include <iostream.h> int main(){ int i,n; fstream fichbin("ejemplo11.dat",ios::binary ios::in ios::out); for (i=1;i<=10;i++) fichbin.write(&i,sizeof(int)); // Almacena los 10 primeros enteros fichbin.seekp(4*sizeof(int)); // se posiciona al principio del quinto/ entero fichbin.read(&n,sizeof(float)); // Lee dicho entero cout <<endl << "Quinto= " << N << endl; // visualiza el valor 5 fichbin.seekp(4*sizeof(int)); // se posiciona de nuevo en el quinto entero // pues el cursor había avanzado. i=100; fichbin.write(&i,sizeof(int)); // Modifica el valor 5 por el valor 100; fichbin.seekp(0*sizeof(int)); // se posiciona de nuevo al principio del fichero for (i=1;i<=10;i++){ fichbin.read(&n,sizeof(float)); cout <<endl << i << "= " << N << endl; fichbin.close(); // Fin del main // Se visualiza el contenido )