Tema 6 (2021)
2 participantes
Página 1 de 1.
Tema 6 (2021)
Estudiantes de la carrera de Ingeniería en Informática, asignatura: Programación Orientada a Objetos, pueden hacer sus aportaciones, participando en este foro, contestando al menos uno de los siguientes reactivos, temas o competencias:
Tema 6.- Archivos
Competencia Específica: Comprende y aplica programas que manipulen archivos de texto y binarios en función de una problemática dada.
Subtemas:
6.1.- Definición de Archivos de texto y archivos binarios.
6.1.1.- Elaborar un cuadro comparativo con las características de los archivos de texto y binarios, así como su aplicación.
6.2.- Operaciones básicas en archivos texto y binario.
6.2.1.- Desarrollar aplicaciones que usen archivos binarios que validen excepciones para la solución de problemas; y presentar un fragmento de código fuente, que se haya generado.
6.3.- Manejo de excepciones en archivos.
ATTE: M.C. Edgar Rangel Lugo.
Tema 6.- Archivos
Competencia Específica: Comprende y aplica programas que manipulen archivos de texto y binarios en función de una problemática dada.
Subtemas:
6.1.- Definición de Archivos de texto y archivos binarios.
6.1.1.- Elaborar un cuadro comparativo con las características de los archivos de texto y binarios, así como su aplicación.
6.2.- Operaciones básicas en archivos texto y binario.
6.2.1.- Desarrollar aplicaciones que usen archivos binarios que validen excepciones para la solución de problemas; y presentar un fragmento de código fuente, que se haya generado.
6.3.- Manejo de excepciones en archivos.
ATTE: M.C. Edgar Rangel Lugo.
Tema 6.- Archivos
Los archivos tienen como finalidad guardar datos de forma permanente. Una vez que acaba la aplicación los datos almacenados están disponibles para que otra aplicación pueda recuperarlos para su consulta o modificación.
Angel_Jim_2A6- Mensajes : 5
Fecha de inscripción : 23/03/2021
Operaciones básicas en archivos de texto y binarios
Existen varias operaciones comunes a todos los archivos:
Cada operación se realiza de una manera un tanto diferente dependiendo del tipo de archivo que se va a utilizar. Las diferencias más básicas entre ambos se puede resumir en lo siguiente:
La creación del archivo consiste en reservar memoria en el soporte físico para que pueda almacenar los datos que tenga que almacenar, demanda la creación de su estructura y su indización. El cómo se realizan estas operaciones depende en medida del sistema operativo que se esté utilizando al momento de crear el archivo.
La destrucción del archivo, por el lado contrario, es lo que concierne a la eliminación del archivo y consiste en, básicamente, marcar como espacio libre en el soporte aquel que era usado por el archivo.
Una consulta es una operación que permite al usuario acceder al archivo de datos para conocer el contenido de uno, varios o todos los registros.
La actualización es la operación que permite tener actualizado el archivo de tal forma que sea posible hacer las operaciones de consulta, inserción, supresión y modificación de registros.
La clasificación es una operación muy importante en un archivo. Se le conoce como ordenación, clasificación, o también sort en inglés. La clasificación se realiza de acuerdo con el valor de un campo en concreto, pudiendo ser ascendente o descendente, alfabéticamente o numéricamente.
La reunión es una operación que permite obtener un archivo a partir de otros varios. La fusión, de manera similar, es una operación que permite reunir varios archivos en uno solo, intercalándose unos en otros, siguiendo una serie de criterios de terminados.
La rotura o estallido de un archivo es la operación que se realiza para obtener varios archivos a partir de un mismo archivo inicial.
Para los archivos de texto, el resto de las operaciones son sencillas, pues los archivos de texto pueden utilizarse de manera secuencial, es decir, accediendo a cada registro de tal forma que para llegar al último registro hay que pasar por todos los anteriores. De esta forma, todas las operaciones de consulta, modificación y eliminación de registros (y las derivadas de estas) pueden ser todas de naturaleza secuencial. No hay una gran complejidad de por medio, pues es posible realizar las operaciones con base en recorridos, como si de un arreglo se tratase.
Para los archivos binarios, esto se vuelve más complicado, pues si bien puede utilizarse de manera secuencial, esto hace que se convierta en algo poco práctico, pues los archivos binarios son utilizados en su mayoría para almacenar cantidades enormes de datos. Un archivo binario no es sencillo de modificar, pues el archivo solamente aloja cadenas de bits en crudo, es decir, datos serializados. Un caso que podría ser útil para pocos datos sería volver a crear todo el archivo con las modificaciones que se necesiten, pero esto sería lento y no es deseable en un sistema con una cantidad de registros muy grande que se actualiza constantemente. En su lugar, los archivos binarios pueden utilizar técnicas de almacenamiento directo (especificando direcciones de memoria) que permiten acceder a los archivos de una manera más rápida.
Al usar el almacenamiento directo ya es posible hacer algunas cosas más:
Sin embargo, tiene sus condiciones, que presento a continuación.
Para lograr el cometido de almacenar directamente de manera adecuada, es necesario hacer uso de funciones hash y prever las posibles colisiones que surjan de esta. En general, la función hash es aquella que le da un orden a los registros(pues se almacenan de manera desordenada en la memoria), asignándole un número a los registros de manera funcional, de manera que sean únicos. Sin embargo, estas funciones pueden dar el mismo resultado para dos registros diferentes, lo que produce un error (no puede haber dos registros con el mismo identificador), llamado colisión. Es responsabilidad del programador prever las colisiones de una función hash, por lo que debe prepararse suficiente memoria para tener una zona en la que se almacenen los registros que hayan ocasionado un error: la zona de desbordamiento.
En general, la forma en que se realizan las operaciones de los archivos dependen en gran medida de cómo estén implementados, por lo que un archivo organizado secuencialmente difiere de un archivo organizado direccionalmente por la forma tan drásticamente diferente en que se implementan las cosas.
- Creación
- Consulta
- Actualización
- Clasificación
- Reorganización
- Destrucción
- Reunión y fusión
- Rotura o estallido
Cada operación se realiza de una manera un tanto diferente dependiendo del tipo de archivo que se va a utilizar. Las diferencias más básicas entre ambos se puede resumir en lo siguiente:
Archivo de texto | Archivo binario | |
Velocidad |
|
|
Dificultad |
|
|
Denominación |
|
|
Portabilidad |
|
|
La destrucción del archivo, por el lado contrario, es lo que concierne a la eliminación del archivo y consiste en, básicamente, marcar como espacio libre en el soporte aquel que era usado por el archivo.
Una consulta es una operación que permite al usuario acceder al archivo de datos para conocer el contenido de uno, varios o todos los registros.
La actualización es la operación que permite tener actualizado el archivo de tal forma que sea posible hacer las operaciones de consulta, inserción, supresión y modificación de registros.
La clasificación es una operación muy importante en un archivo. Se le conoce como ordenación, clasificación, o también sort en inglés. La clasificación se realiza de acuerdo con el valor de un campo en concreto, pudiendo ser ascendente o descendente, alfabéticamente o numéricamente.
La reunión es una operación que permite obtener un archivo a partir de otros varios. La fusión, de manera similar, es una operación que permite reunir varios archivos en uno solo, intercalándose unos en otros, siguiendo una serie de criterios de terminados.
La rotura o estallido de un archivo es la operación que se realiza para obtener varios archivos a partir de un mismo archivo inicial.
Para los archivos de texto, el resto de las operaciones son sencillas, pues los archivos de texto pueden utilizarse de manera secuencial, es decir, accediendo a cada registro de tal forma que para llegar al último registro hay que pasar por todos los anteriores. De esta forma, todas las operaciones de consulta, modificación y eliminación de registros (y las derivadas de estas) pueden ser todas de naturaleza secuencial. No hay una gran complejidad de por medio, pues es posible realizar las operaciones con base en recorridos, como si de un arreglo se tratase.
Para los archivos binarios, esto se vuelve más complicado, pues si bien puede utilizarse de manera secuencial, esto hace que se convierta en algo poco práctico, pues los archivos binarios son utilizados en su mayoría para almacenar cantidades enormes de datos. Un archivo binario no es sencillo de modificar, pues el archivo solamente aloja cadenas de bits en crudo, es decir, datos serializados. Un caso que podría ser útil para pocos datos sería volver a crear todo el archivo con las modificaciones que se necesiten, pero esto sería lento y no es deseable en un sistema con una cantidad de registros muy grande que se actualiza constantemente. En su lugar, los archivos binarios pueden utilizar técnicas de almacenamiento directo (especificando direcciones de memoria) que permiten acceder a los archivos de una manera más rápida.
Al usar el almacenamiento directo ya es posible hacer algunas cosas más:
- Dejar de leer todo un registro para poder comparar un solo campo y en lugar de ello solamente leer el campo deseado para cotejar
- Definir un tamaño concreto en bits para todos los registros y para cada campo, lo que facilita enormemente las operaciones de actualización, búsqueda, clasificación y eliminación.
- Leer y escribir rápidamente en cualquier orden y posición.
Sin embargo, tiene sus condiciones, que presento a continuación.
- Debe hacerse en un soporte direccionable (una unidad de disco magnético, por ejemplo)
- Los registros deben tener un campo clave (un identificador)
- Deben almacenarse las direcciones de memoria de las claves para poder acceder a los datos.
Para lograr el cometido de almacenar directamente de manera adecuada, es necesario hacer uso de funciones hash y prever las posibles colisiones que surjan de esta. En general, la función hash es aquella que le da un orden a los registros(pues se almacenan de manera desordenada en la memoria), asignándole un número a los registros de manera funcional, de manera que sean únicos. Sin embargo, estas funciones pueden dar el mismo resultado para dos registros diferentes, lo que produce un error (no puede haber dos registros con el mismo identificador), llamado colisión. Es responsabilidad del programador prever las colisiones de una función hash, por lo que debe prepararse suficiente memoria para tener una zona en la que se almacenen los registros que hayan ocasionado un error: la zona de desbordamiento.
En general, la forma en que se realizan las operaciones de los archivos dependen en gran medida de cómo estén implementados, por lo que un archivo organizado secuencialmente difiere de un archivo organizado direccionalmente por la forma tan drásticamente diferente en que se implementan las cosas.
Ivan_MP_2B6- Invitado
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.