Archivos binarios en C ARCHIVO DE CABECERA fstream
Archivos binarios en C++ ARCHIVO DE CABECERA fstream. h
Archivos binarios Es un archivo sin formato. Los datos se almacenan tal y como se almacenan en la memoria de la computadora, no hay conversiones. Los elemento que se desean almacenar, se guardan en variables, matrices o registro tipo struct.
Declaración de objetos de la clase Objeto de entrada • ifstream entrada; Objeto de salida • ofstream salida; Objeto de entrada/salida • fstream ensa;
Apertura de archivos Salida (escribir archivo) Entrada (leer archivo) Ensa • salida. open ("d: /agenda 1. dat", ios: : binary); • Modo de apertura Path • entrada. open ("d: /agenda 1. dat", ios: : binary); • ensa. open ("d: /agenda 1. dat", ios: : binary);
Modos de apertura ios: : app Operaciones de añadidura. ios: : ate Coloca el apuntador del archivo al final del mismo. ios: : in Operaciones de lectura. Esta es la opción por defecto para objetos de la clase ifstream. ios: : out Operaciones de escritura. Esta es la opción por defecto para objetos de la clase ofstream. ios: : nocreate Si el archivo no existe se suspende la operación. ios: : noreplace Crea un archivo, si existe uno con el mismo nombre la operación se suspende. ios: : trunc Crea un archivo, si existe uno con el mismo nombre lo borra. Ios: : binary Operaciones binarias.
Funciones de archivos salida. write((char*)&Variable, sizeof(tipo de dato); entrada. read((char*)&Variable , sizeof(tipo de dato));
Cerrar archivos salida. close (); entrada. close();
Acceso a posiciones específicas Para mover los apuntadores de archivo a posiciones específicas se utilizan dos funciones: seekg( ) coloca el apuntador de escritura de archivo en un lugar específico seekg(desplazamiento, posición); seekp( ) mueve el apuntador de lectura a una posición específica en el archivo seekp(desplazamiento, posición);
Parámetro de posición ios: : beg Desde el principio del archivo ios: : cur Desde la posición actual del apuntador ios: : end Desde el fin del archivo
Ejemplo seekp(); salida. seekp(0, ios: : end); salida. open("d: /agenda 1. dat", ios: : app | ios: : binary); cout << "Desea dar de alta nuevos registros? (S/N) "; cin >> resp;
Ejemplo seekg(); entrada. Salida. open("E: /agenda 1. dat", ios: : in | ios: : binary); int no. Registro = 0; cout << "Ingrese el numero de registro que desea seleccionar: " << endl; cin >> no. Registro; cin. ignore(256, 'n'); entrada. Salida. seekg( (no. Registro-1) * sizeof(dato), ios: : beg ); entrada. Salida. read((char*)&AL, sizeof(dato));
- Slides: 11