Ficheros en C++
¿QUE ES?
Muy a menudo necesitamos almacenar cierta cantidad de datos de forma más o menos permanente. La memoria del ordenador es volatil, y lo que es peor, escasa y cara. De modo que cuando tenemos que guardar nuestros datos durante cierto tiempo tenemos que recurrir a sistemas de almacenamiento más económicos, aunque sea a costa de que sean más lentos.
Aquí es donde entran los ficheros, un archivo es un fichero (dato) almacenado en la memoria del computador generalmente en el disco duro, estos solo contienen datos imprimibles osea que su código ASCII sea mayor o igual a 32, un fichero tiene diversas funciones entre las cuales encontramos partes de códigos, también en ocasiones almacenan datos que el usuario necesite almacenar como nombre o contraseñas que luego usara en el programa.
Encontramos diversos tipos de ficheros dentro de los cuales esta:
- Dependiendo de la dirección de flujo de datos:
- De entrada: los datos se leen por el programa desde el archivo.
- De salida: los datos se escriben por el programa hacia el archivo.
- De entada/salida: los datos pueden ser escritos y leídos.
2. Dependiendo del tipo de valores permitidos a cada byte:
- De texto: sólo están permitidos ciertos rangos de valores para cada byte. Algunos bytes tienen un significado especial, por ejemplo, el valor hexadecimal 0x1A marca el fin de fichero. Si abrimos un archivo en modo texto, no será posible leer más allá de un byte con ese valor, aunque el fichero sea más largo.
- Binarios: están permitidos todos lo valores para cada byte. En estos archivos el final del fichero se detecta de otro modo, dependiendo del soporte y del sistema operativo. La mayoría de las veces se hace guardando la longitud del fichero. Cuando queramos almacenar valores enteros, o en coma flotante, o imágenes, etc, deberemos usar este tipo de archivos.
3. Dependiendo del tipo de acceso:
- Archivos secuenciales: imitan el modo de acceso de los antiguos ficheros secuenciales almacenados en cintas magnéticas
- Archivos de acceso aleatorio: permiten acceder a cualquier punto de ellos para realizar lecturas y/o escrituras.
En cuanto a como se definen las propiedades si son binarios de entrada, salida o de entrada/salida se define al abrir el fichero mediante la función fopen en C o mediante el método de open de fstream para c++.
En C hay 6 tipos de apertura para un archivo:
- r= solo lectura. (el fichero debe existir)
- w= escritura. (se crea un fichero nuevo o se sobrescribe si ya existe)
- A= agregar. (se abre para escritura el cursor se sitúa al final del fichero si este no existe se crea)
- r++= leer y escribir. ( El fichero debe existir)
- w++= escribir y agregar. (se crea un fichero nuevo o se sobre escribe si ya existe)
- b= binarios. (modo binario).
Ejemplo de como se escribe un fichero en C++:
#include <fstream.h>
main()
{ ofstream fichero("ejemplo.txt");
fichero << "Hola" << endl;
fichero << "Adios" << endl;
fichero.close();
}
Referencias:
- http://www.dlsi.ua.es/asignaturas/p2/downloads/1314/teoria/es/t3-files-es-ver.pdf
- http://c.conclase.net/ficheros/
- http://c.conclase.net/curso/?cap=039
- http://www.aprendeaprogramar.com/mod/resource/view.php?id=17
Comentarios
Publicar un comentario