PDF de programación - Unidad IV - Tema I - Archivos (Ficheros)

Imágen de pdf Unidad IV - Tema I - Archivos (Ficheros)

Unidad IV - Tema I - Archivos (Ficheros)gráfica de visualizaciones

Publicado el 8 de Mayo del 2018
159 visualizaciones desde el 8 de Mayo del 2018
246,8 KB
31 paginas
Creado hace 13a (20/01/2006)
Programación Instituto Tecnológico de Celaya



UNIDAD IV

TTEEMMAA II

AARRCCHHIIVVOOSS ((FFIICCHHEERROOSS))


Ingeniería Química

Página 174

Programación Instituto Tecnológico de Celaya

AARRCCHHIIVVOOSS ((FFIICCHHEERROOSS))


Siempre que se usa una computadora, se utilizan archivos para almacenar la

información. Por ejemplo, cuando se crea un programa en C++, se crea un

archivo con extensión cpp que contiene el código del programa.

También se pueden utilizar archivos para almacenar los resultados que se

obtienen en un programa y para leer los datos que requiere un programa. Este

documento explica el uso de archivos I/O en C++.


Archivo I/O

El término I/O (Input/Output) se refiere a la “entrada” de datos y la “salida”

de resultados de un programa.
Hasta ahora, se han manejado la sentencia cout para “salida” de resultados y la
sentencia cin para “entrada” de datos a un programa. cout y cin envían los
mensajes o leen la información a/desde la pantalla de la computadora. El

mecanismo por el cual la información se lee y se envía a la computadora a

través de la pantalla se dice que es salida/entrada estándar.

Es posible, sin embargo, en lugar de enviar mensajes a pantalla enviarlos a un

archivo. De la misma forma, en lugar de leer datos a través de la pantalla, es

también posible leerlos desde un archivo.

Ambas formas son válidas y útiles. La diferencia es que cuando se utiliza la

salida a pantalla, la información se obtiene sólo en forma temporal, pues se

pierde cuando termina de ejecutarse el programa y la ventana desaparece. Por

otra parte, si los resultados se envían a un archivo, este archivo queda

guardado en el disco aún después de que el programa termina de ejecutarse.

Por ello se dice que los archivos son una forma de almacenar los datos en forma

permanente.

Los archivos que se guardan y se leen se dice que son de tipo texto, pues

pueden contener únicamente caracteres en código ASCII (como letras,

números, algunos símbolos, etc). Así, es posible editar archivos de este tipo con


Ingeniería Química

Página 175

Programación Instituto Tecnológico de Celaya

cualquier editor de texto (como Notepad, Wordpad, Word, etc.) siempre y

cuando se guarden como archivos de texto.

Cuando un programa envía información a un archivo, se dice que el archivo es

de escritura. Cuando un programa lee información desde un archivo, se dice

que el archivo es de lectura.



Además de la clasificación en lo que respecta a si el archivo es de escritura o de

TTIIPPOOSS DDEE AARRCCHHIIVVOOSS II//OO

lectura, los archivos I/O se clasifican en dos categorías: Archivos secuenciales o

archivos de acceso aleatorio.


Archivos Secuenciales


En estos archivos, la información sólo puede leerse y escribirse empezando

desde el principio del archivo. Los archivos secuenciales tienen algunas

características que hay que tener en cuenta:

1. La escritura de nuevos datos siempre se hace al final del archivo.

2. Para leer un dato concreto del archivo hay que avanzar siempre hasta donde

se encuentre dicho dato. Si el dato requerido se encuentra antes del dato en

que está se está posicionado el archivo en un momento dado, será necesario

regresar al comienzo del archivo y avanzar hasta el dato necesario.


Archivos de Acceso Aleatorio
Los archivos de acceso aleatorio son más versátiles, permiten acceder a

cualquier parte del archivo en cualquier momento, como si fueran arreglos en

memoria. Las operaciones de lectura y/o escritura pueden hacerse en cualquier

punto del archivo.



En realidad C++ no distingue si los archivos que usamos son secuenciales o de

acceso aleatorio, es el tratamiento que hagamos de ellos lo que los clasifica

como de uno u otro tipo. En el curso se considerará sólo el caso en el que el

archivo se lee en orden desde el principio hasta el final (archivos secuenciales).

Ingeniería Química

Página 176

Programación Instituto Tecnológico de Celaya

DDEECCLLAARRAACCIIÓÓNN DDEE AARRCCHHIIVVOOSS II//OO YY AAPPLLIICCAACCIIOONNEESS



Si se recuerda, las instrucciones cin y cout se definen en la librería iostream.h,

y es por ello que siempre incluimos esa librería en nuestro programa. En forma

similar, cuando se desea usa archivos I/O, es necesario incluir la librería

fstream.h, es decir, se debe incluir en el programa:



#include <fstream.h>



Asimismo, cin y cout pueden verse como dos comandos que ya han sido

definidos y que “conectan” la información del programa con la pantalla del

computador. Si se quiere que la información se “conecte” con un archivo es

necesario declarar dos nuevos comandos que sirvan para ese propósito y que se

puedan usar en lugar de cin y cout. Una declaración típica que se realiza es la

siguiente:



ifstream in_stream;

ofstream out_stream;



Esto puede interpretarse como una declaración de dos “comandos” (in_stream y

out_stream) que pueden utilizarse en lugar de cin y cout. ifstream (“input-file-

stream”) y ofstream(output-file-stream) se encuentran definidos en la librería

fstream.h.



Si se realiza la declaración anterior, entonces sería posible utilizar in_stream y

out_stream exactamente como se han usado cin y cout. La diferencia es que la

salida de resultados y la entrada de datos se harían a y desde un archivo,

respectivamente. Por ejemplo:



int numero;

in_stream>>numero; /* Lee el valor de numero desde un archivo*/

out_stream<<”El numero es “>>numero>>”\n”;/*Escribe datos a un archivo*/

Ingeniería Química

Página 177

Programación Instituto Tecnológico de Celaya

Ahora, en el ejemplo anterior se habla de que se escribe y se lee a y desde un

archivo. ¿Desde/de cuál archivo? La respuesta a esa pregunta se debe de

incluir en el programa a través de instrucciones como la siguiente:



in_stream.open(“entrada.dat”);

out_stream.open(“salida.dat”);



Instrucciones como las anteriores se deben de incluir en el programa antes de

usar in_stream y out_stream. Lo que las dos instrucciones anteriores no están

indicando es que el programa utilizará un archivo denominado entrada.dat para

leer datos y que va a escribir los resultados en un archivo llamado salida.dat.

Se dice que las instrucciones anteriores están “abriendo” archivos para que

éstos puedan ser usados para leer o escribir datos.



Por último, una vez que el programa se ha ejecutado, es necesario “cerrar” los

archivos que se “abrieron”. Para ello se utiliza:



in_stream.close();

out_stream.close();


Resumen de Sentencias e Instrucciones para Usar Archivos I/O

1) Incluir la librería correspondiente:

#include <fstream.h>



2) Seleccione los nombres para dos comandos que utilice en lugar de cin y cout
para leer y escribir de/desde un archivo. Si por ejemplo selecciona a_ent

(para entrada en lugar de cin) y a_sal (para salida en lugar de cout), deberá

declararlos como:



ifstream a_ent;

ofstream a_sal;


Ingeniería Química

Página 178

Programación Instituto Tecnológico de Celaya

3) Conecte los comandos al archivo en que quiera guardar los resultados o al
archivo del cual quiera leer los datos. Suponga que se quieren guardar los

datos en un archivo llamada salida.dat y se quieren leer los datos desde el

archivo entrada.dat. Se deberá usar entonces:



a_ent.open(“entrada.dat”);

a_sal.open(“salida.dat”);



4) A partir de entonces, cada vez que use a_sal es como usar cout, pero la
salida es al archivo, y cada vez que use a_ent es como usar cin, pero la

lectura de datos es desde el archivo. Ejemplo:



a_ent>>variable;

a_sal<<variable2;



5) Cierre los archivos luego de utilizarlos:

a_ent.close();

a_sal.close();



Ingeniería Química

Página 179

Programación Instituto Tecnológico de Celaya

EEJJEEMMPPLLOO


#include <fstream.h>
#include<iostream.h>
#include<stdlib.h>


int main()

{

/* Este programa pide 3 numero a un usuario y luego los escribe en

el archivo salida.dat */

int x[3];

ofstream csalida;



csalida.open(“salida.dat”);



/* Observe que cin y cout se pueden seguir usando como antes */

cout<<”Dame el valor de 3 numeros enteros \n”

<<”Presiona Enter despues de cada uno \n”;

cin>>x[0]>>x[1]>>x[2];



/* Escribir los valores en el archivo */

csalida<<x[0]<<”\t”<<x[1]<<”\t”<<x[2]<<”\n”;



/* Cierra el archivo */

csalida.close();



system(“PAUSE”);
  • Links de descarga
http://lwp-l.com/pdf10939

Comentarios de: Unidad IV - Tema I - Archivos (Ficheros) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad