para descargar el archivo

Anuncio
Cátedra I Informática
Autor I Carlos Bartó
1
UNIDAD 7:
ENTRADA/SALIDA DE INFORMACION
1. Objetos y métodos en el flujo de archivos de E/S.
•
Elementos necesarios:
1. Un archivo;
2. Un objeto de flujo de datos (buffer de almacenamiento intermedio)
•
Archivos: precios.dat
•
Objetos de flujo de datos:
#include <iostream> //(cin console input)
//(cout console output)
#include <fstream> // incluye los siguientes:
ifstream flujo_entr
ofstream flujo_sal
•
Métodos de flujos de E/S de datos:
info.txt
prueba.dat (255chars)
Métodos de apertura de archivos:
flujo_entr.open(“precios.dat”);
flujo_entr.open(“c:\\prueba\\archivos\\precios.dat”);
Métodos de estado del archivo:
flujo_entr.fail()bool
flujo_entr.eof() bool
flujo_entr.good()bool
flujo_entr.bad() bool
v
v
v
v
si
si
si
si
no se abrió con éxito
se leyó mas alla de EOF
está disponible
se lee después EOF
Programa: PGM08-01.CPP (PGM07-01 1a ed)
Programa: PGM08-01A.CPP (PGM07-01a 1a ed)
Programa: PGM08-01B.CPP (PGM07-01b 1a ed)
Programa: PGM08-02.CPP
Archivos: precios.dat info.txt prueba.dat
•
Nombres de archivos embebidos en el programa o interactivos:
Programa: PGM08-03a.CPP (PGM07-01a 1a ed, strings)
•
Cerrar un archivo:
flujo_entr.close(); // notar ausencia de parámetros
Programa: PGM08-03b.CPP (PGM07-01b 1a ed, strings)
EJERCICIOS 8.1 página 457
 Métodos de fstream: son de entrada y salida genérica
Declaración de tipo flujo: fstream nombreFlujo;
La función miembro open de fstream requiere los
parámetros nombre_archivo y ios::modo:
flujo_entr.open(nombre_archivo, ios::modo);
1
Cátedra I Informática
Autor I Carlos Bartó
ios::in (entrada)
ios::out (salida)
ios:app (anexar);
ios::ate
(at end)
ios::binary
(binario)
ios::trunc
(elimina el contenido si existe)
ios::nocreate (si existe falla para entrada)
ios::noreplace (si existe falla para salida)
2
EJERCICIOS 8.1 página 457
2. Lectura y escritura de arhivos basados en caracteres.
•
Formateo de los flujos de salida de un archivo
#include <iomanip>
flujo_sal << “cadena1” << “cadena2”;
Programa: PGM08-04.CPP (PGM07-02
1a ed, strings)
 Lectura de un archivo de texto:
flujo_entrada >> variable1 >> variable2 >> .. ;
 Lectura de un archivo de texto con funciones miembro de fstream
.get() Devuelve el siguiente caracter como int.
.get(charVar) Extrae el siguiente caracter y lo asigna
.putback(expresionChar) Devuelve un caracter en el
flujo de entrada y no altera el archivo.
.getline(strObj, caracter_terminacion)
Extrae caracteres del flujo de entrada hasta que se
encuentra con el caracter de teminación y los asigna
a strObj. Devuelve un booleano.
getline(objeto Archivo,strObj, caracter_terminacion)
Es similar a la anterior pero es una función y no un
miembro de la clase fstrean.
.peek() devuelve el siguiente caracter sin extraerlo.
.ignore(int n) Salta los siguientes n caracteres.
 Escritura de un archivo de texto con funciones miembro de fstream
.put(expresionChar) Pone el caracter en el flujo de
salida.
Programa:
Programa:
Programa:
Programa:
PGM08-05.CPP
PGM08-05A.CPP
PGM08-06.CPP
PGM08-06A.CPP
(PGM07-03
(PGM07-03
(PGM07-04
(PGM07-04
1a
1a
1a
1a
ed)
ed, strings)
ed, strings)
ed)
EJERCICIOS 8.2 página 468
2
Cátedra I Informática
Autor I Carlos Bartó
3
3. Excepciones y comprobación de archivos.
•
try - throw- catch(valor arrojado):
try
{
// una o más instrucciones
// al menos una de las cuales deberá
// lanzar una excepción(trhow excepcion).
}
catch(tipos_de_dato_excepcion nombre_parámetro)
{
// una o más instrucciones
}
Programa: PGM08-07.CPP
•
Probar que un archivo se abrió con éxito:
Programa: PGM08-08.CPP
•
Archivos abiertos simultáneamente para respaldo con try-catch
Programa: PGM08-09.CPP
EJERCICIOS 8.3 página 480
4. Archivos de acceso aleatorio.

Funciones de marcadores de posición del archivo:
.seekg(desplazamiento, modo)
Para archivos de entrada se mueve a la posición de
desplazamiento indicada por el modo.
Modos:
ios::beg Posicion de desplazamiento desde inicio
ios::cur Posicion de desplazamiento desde actual
ios::end Posición de desplazamiento desde final
.seekp(desplazamiento, modo)
Para archivos de salida se mueve a la posición de
desplazamiento indicada por el modo.
.tellg(void)
Para archivos de entrada devuelve el valor actual
del marcador de posición.
.tellp(void)
Para archivos de salida devuelve el valor actual
del marcador de posición.
Programa: PGM08-10.CPP (PGM07-05 1a ed, strings)
EJERCICIOS 8.4 página 483
3
Cátedra I Informática
Autor I Carlos Bartó
4
5. Flujos de archivos como argumentos de funciones.
Void inOut(ofstram&) // los flujos se pasan por
// referencia
Programa: PGM08-11.CPP (PGM07-06 1a ed, strings)
Programa: PGM08-11A.CPP (PGM07-06 1a ed)
Programa: PGM08-12.CPP (PGM07-07 1a ed, strings)
EJERCICIOS 8.5 página 487
4
Descargar