120 likes | 339 Views
GESTIÓN DE ARCHIVOS EN C++. Arturo Téllez Velázquez. Base de datos Archivos Registros Campos Bytes Bits. Jerarquía de archivos. Para realizar el procesamiento de archivos en C++ es necesario incluir los siguientes archivos de encabezado: iostream.h fstream.h.
E N D
GESTIÓN DE ARCHIVOS EN C++ Arturo Téllez Velázquez
Base de datos Archivos Registros Campos Bytes Bits Jerarquía de archivos
Para realizar el procesamiento de archivos en C++ es necesario incluir los siguientes archivos de encabezado: iostream.h fstream.h
Un archivo debe terminar con un marcador de fin de archivo (eof). • Existen 2 tipos de archivo: • Archivo de Acceso Secuencial • Archivo de Acceso Aleatorio • El programador debe estructurar los archivos para satisfacer los requerimientos de sus propias aplicaciones. Es decir, debe elegir entre los 2 tipos de archivo para saber cómo manipulará los datos en su aplicación. Observaciones
Para la manipulación de archivos de acceso tanto secuencial como aleatorio, es necesario crear un objeto a partir de las clases fstream, ifstream u ofstream de la siguiente manera. • fstream/ifstream/ofstream Name ( “filePath”, ios::mode ) • Que indica que se creará un objeto de la clase pertinente llamado Name que abre un archivo para salida, entrada o ambas, llamado filePath, mediante su constructor pertinente. Archivo de Acceso Secuencial
Existen varios modos de apertura determinados por la etiqueta ios::mode de la diapositiva anterior. • Para la escritura y lectura de un archivo de acceso secuencial se hace uso de los operadores de inserción y extracción de flujo de la clase iostream, << y >> respectivamente. Archivo de Acceso Secuencial
Introduce datos que son escritos en el archivo. • Name << Data; • Lee los datos desde el archivo y los deposita en alguna variable. • Name >> Data; • Los programas pueden escribir o leer datos secuencialmente comenzando desde el inicio del archivo hasta encontrar el dato deseado o el marcador de fin de archivo (eof). • La clase iostream proporciona las funciones miembro para ubicar o reubicar el Apuntador de Posición de Archivo. • seekg <istream> “Seek and Get” • seekp <ostream> “Seek and Place” Archivo de Acceso Secuencial
Estas son algunas de las opciones que pueden agregarse a las funciones miembro antes mencionadas • ios::beg beginning, inicio de archivo • ios::cur current, posición actual del apuntador • ios::end end, final de archivo • Para lectura, se pueden emplear la función miembro seekg de la sgt. Manera usando las opciones anteriores. • fileObject.seekg( n ); Ubica n-ésimo byte, asume ios::beg • fileObject.seekg( n, ios::cur ); Ubica n bytes delante de la posición actual • fileObject.seekg( m, ios::end ); Ubica m bytes atrás respecto al final del archivo • fileObject.seekg( 0, ios::end ); Ubica el final del archivo • Hay otras funciones miembro que devuelven la dirección de los apuntadores get y place: • tellg y tellp Archivo de Acceso Secuencial
Un registro es un conjunto de dimensiones finitas de campos relacionados. • Los archivos de acceso aleatorio permiten la localización de registros de forma inmediata y directa, sin tener que buscar en todos los registros. • Una técnica para crear archivos de acceso aleatorio es la de lograr que todos los registros tengan las mismas dimensiones, esto hace que para un programa sea más fácil calcular la localidad exacta del registro con relación al inicio del archivo y escribir en él sin tener que modificar todo el archivo. Archivo de Acceso Aleatorio
Se proporcionan las siguientes funciones miembro para la escritura y la lectura en un archivo de acceso secuencial. • write <ostream> • Es una función miembro que proporciona la salida a un número fijo de bytes, que se inicia en una localidad de memoria específica hacia un flujo especificado. Cada flujo está asociado con un archivo, escribiéndose los datos comenzando en la localidad del archivo especificada por el apuntador place. • read <istream> • Es una función miembro que proporciona la entrada a un número fijo de bytes desde un flujo especificado hacia una localidad de memoria que comienza en la localidad del archivo especificada por el apuntador get • Los programas con procesamiento de archivos de acceso aleatorio, manipulan estructuras struct o class en vez de un solo campo. Archivo de Acceso Aleatorio
La sintaxis que tienen estas funciones son las siguientes: • fstream/ifstream/ofstream Name ( “filePath”, ios::mode ) • Name.write(reinterpret_cast <const char *> • ( &Struct_or_Class_to_Save ), • sizeof( Kind_of_Struct_or_Class ) ); • La función reinterpret_cast convierte la dirección de la estructura o clase a guardar a const char *. Archivo de Acceso Aleatorio