Está en la página 1de 2

ARCHIVOS BINARIOS

Un archivo texto se almacena en una secuencia de caracteres que corresponden a


la tabla estndar de caracteres ASSCII. En tanto en un archivo binario los datos se
guardan tal y como son almacenados en la memoria del computador. Para el caso
de los archivos de tipo texto el computador realiza la tarea de traducirlos a lenguaje
mquina, procesarlos y luego volver a traducirlos a tipo texto para mostrar
transparencia al usuario. En los archivos binarios el proceso de traduccin no se
da, por lo que los datos son procesados directamente por la mquina, esto significa
una economa de espacio (en memoria) y un incremento en la velocidad de
procesamiento de la informacin (tiempo). De todo esto se concluye que para el
manejo de grandes volmenes de informacin en archivos, el modo binario es
preferible al modo texto.
En un archivo tipo texto el acceso a la informacin es secuencial; es decir desde el
inicio del archivo hasta el final, o hasta conseguir la informacin deseada. En
cambio en el modo binario el acceso adems de secuencial, puede hacerse de
modo aleatorio, debido a que la informacin se guarda en registros pudiendo
accederse directamente a cualquiera de los i-registros del archivo, sin necesidad de
pasar por los registros anteriores. A esto se le conoce tambin como acceso directo
o acceso aleatorio.
En un archivo binario la informacin se almacena en paquetes de n-bytes de
tamao cada uno. Cada paquete proviene de una estructura (struct) o registro, o de
una clase (class).
GESTION DE ARCHIVOS BINARIOS EN C++
Para gestionar archivos en modo binario en C++ se requiere declararlos de modo
explcito mediante la directiva ios::binary. Al respecto se tiene:
1. Declaracin: Lectura y escritura:
ifstream lee_bin; // objeto para lectura
ofstream escribe_bin; // objeto para escritura
2. Apertura: se usa la funcin open() para asociar el flujo de
archivo con un objeto fsico
lee_bin.open( datos.dat, ios::in | ios::binary);
escribe_bin.open( datos.dat, ios::out | ios::binary );
3. Cierre del flujo: se usa la funcin close()
lee_bin.close();
escribe_bin.close();
4. Aadir datos: se utiliza el modo app
escribe_bin.open(datos.dat,ios::out|ios::app|ios::binary );
NOTAS: Por convenio se acostumbra
1. La extensin de los archivos modo texto es: *.txt, *.doc
2. La extensin de los archivos modo binario es: *.dat, *.bin

FUNCIONES PARA LEER Y ESCRIBIR EN MODO BINARIO


C++ proporciona las funciones write (escribir) y read (leer) que son de
uso exclusivo en archivos de modo binario.
Para leer o escribir en modo binario existen dos maneras:
1. Modo clsico (valido en C y C++)
escribe.write((char* )&dato, sizeof dato);
leer.read((char* )&dato, sizeof dato);
2. Modo moderno (valido solo en C++)
escribe.write(reinterpret_cast <const char*>(&dato), sizeof(dato));
leer.read(reinterpret_cast <char* >(&dato), sizeof(dato));

EJEMPLO 1:
EJEMPLO 2:

También podría gustarte