Manejo de Archivos

  En el mundo de la computación y los ordenadores, una de las tareas más importantes que se ejecutan a diario es el manejo de archivos. Existen diferentes tipos de manejadores de archivos dependiendo del sistema operativo sobre el que se está trabajando y cada uno de estos ejecutan tareas como eliminar o modificar el contenido de los archivos.  Para los programadores es importante conocer este conjunto de comportamientos, para identificar y aplicar soluciones en manejos de archivos y evitar problemas con hilos, procesos en paralelo y direcciones de memoria.

Los sistemas de archivos son cadenas de bytes que sirven para indizar la información, y con esto es resaltar un orden y una gestión eficiente de los  datos. Esto con el fin de jerarquización de la información, un orden de datos. 

Se puede determinar que el comportamiento de los manejadores de archivos y ficheros es el de un árbol n-ario debido a que a partir de un nodo raíz se generan múltiples nodos que se encuentran en subniveles de jerarquía. 

 

    Existen diferentes gestores de archivos que ayudan al usuario a clasificar y manejar los archivos con respecto a sus atributos como nombre, ruta, llaves o sub-llaves,  etc. La importancia de estas herramientas gestoras radica en que son las que permiten realizar operaciones básicas de archivos, además de administrar atributos y directorios donde se ubican cada uno. Estos sistemas de gestión de archivos evitan la pérdida de documentos, ahorran recursos de recuperación de datos   controlan y coordinan todo tipo de gestión de operaciones con documentos.  

Acciones que se pueden ejecutar en sistemas de archivos 

    En los archivos podemos ejecutar acciones como: 

  • Crear. 

  • Modificar 

  • Incrementar 

  • Sobrescribir 

  • Atributos 

  • Extensiones 

  • Copiar 

  • Eliminar 

  • Mover. 

  • Leer. 

  • Cotas. 

  • Unir. 

Características de los Sistemas de archivos 

    En los diferentes sistemas organizadores de archivos se pueden destacar diferentes características propias, algunas características de estos sistemas son: 

    La estructura de tipo árbol vive en la memoria sólida y no en diferentes tipos de archivos, estas viven en dispositivos como los DVD. 

   Para sintetizar la información se pueden crear directorios, con estos se puede representar contenidos que de maneta jerárquica. En un disco duro se trabaja a través de un conjunto de bloques de diferentes tamaños, estos bloques pueden almacenar datos. También se métodos de guardado como el FAT32, que almacenan archivos en los bloques que contiene. 

    Lo primero y lo ultimo que se pude observar en un bloque es información de control y en medio de estos se almacenan datos varios. 

    Dependiendo del sistema de archivos que se este utilizando este debe especificar e identificar la raíz de cada uno de los archivos. 

    Algunos sistemas de manejo de archivos la información es particionada en bloques de 400 megabits esto con el fin de manejar la información contenida según el sistema de archivos del OS.   

    Los archivos siempre están apuntando a un conjunto de direcciones dentro del disco duro, esto con el fin de navegar en la estructura con el fin de llegar a todos los contenidos de los archivos. 

 

    Una de las dificultades que se presentan cuando se trabaja con archivos es como extraer la información de manera eficiente. Para los siguientes ejemplos de extracción de la información utilizaremos el lenguaje de programación C++ y archivos de extensión TXT. 

    Primeramente, es importante conocer las librerías que se están utilizando para extraer la información procedente de un archivo, algunas de las librerías más utilizadas son:  

<iostream.h> 

<fstream.h> 

<iomanip.h> 

 

    El primer paso que se debe de ejecutar es extraer los datos del archivo de texto con el que se esta trabajando y almacenarlo en un objeto de valor determinado por el desarrollador, para el caso que se presenta en el documento solo se extraerá la información y se cerrara el archivo una vez ejecutada la acción anterior.   

    Primeramente, se abrirá el archivo y obtendremos un manejador de acceso, seguidamente se procede a cerrar el archivo.  

std::ofstream ofs; 

  ofs.open ("test.txt", std::ofstream::out | std::ofstream::app); 

  ofs.close(); 
 

 

    Seguidamente se realiza algún tipo de operación sobre esta información atraída, para el ejemplo dado en el artículo se utilizará el siguiente código, el cual extraerá la información de una línea específica de la información extraída.  
ifstream archivo("Pruebas.txt", ios::noreplace); 

    if(archivo.fail())

    cerr << "Error al abrir el archivo Pruebas.txt" << endl;

    else 

    while(!archivo.eof())

    {

        archivo.getline(linea, sizeof(linea));

        cout << linea << endl;
        {

 

    Por otra parte si se desea navegar el archivo, un par de herramientas las cuales facilitan el procesos son seekg() y seekp(). Con la función seekg() se puede ir a una posición especifica del archivo y la función seekp() coloca el puntero en un lugar específico del archivo. La sintaxis de dichos métodos es la siguiente: 

Skeep(desplazamiento, posicion) 

Skeeg(desplazamiento, posicion) 

    Véase en las fuentes bibliográficas el manejo y la composición de las funciones skeep y skeeg. 

    Por otra parte, la variable de desplazamiento tiene posiciones por defecto en el código con sintaxis propia por ejemplo: 

ios::beg : Variable la cual apunta desde la parte del principio del archivo 

 

ios::cur: Variable la cual apunta desde la posición actual del apuntador 

 

ios::end: Variable la cual apunta desde el fin del archivo 

Conclusión  

     En síntesis, el documento desea informar sobre el contenido y características de los archivos y sus manejadores, algunos de sus métodos, y con esto promover el estudio de los archivos y el manejo que se le puede dar a estos.  

    Agrandes rasgos los archivos y manejadores de archivos son mecanismos fundamentales para guardar y manejar datos respectivamente, son de gran utilidad cuando se implementan procesos de manipulación de datos 

Referencias 

adrianvaca. (20 de 3 de 2011). Cool C/C++. Obtenido de Cool C/C++: http://www.programacionenc.net/index.php?option=com_content&view=article&id=69:manejo-de-archivos-en-c&catid=37:programacion-cc&Itemid=55 

CPLUPLUS. (s.f.). CPLUPLUS.COM. Obtenido de CPLUPLUS.COM: http://www.cplusplus.com/reference/ostream/ostream/seekp/ 

CPLUSPLUS. (s.f.). CPLUSPLUS.COM. Obtenido de CPLUSPLUS.COM: http://www.cplusplus.com/reference/istream/istream/seekg/ 

cppReference. (s.f.). www.cplusplus.com/. Obtenido de www.cplusplus.com/: http://www.cplusplus.com/reference/fstream/ofstream/open/ 

 

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.