Uso de ficheros
Los ficheros surgen por la necesidad de almacenar información una vez que termina el programa y poderla usar en ejecuciones futuras de ese mismo programa o de otros.
Es el único mecanismo que tenemos para guardar información cuando nos quedamos sin suministro eléctrico y poder recuperarla después.
El acceder a la información de los ficheros, supone acceder a dispositivos que al lado de la memoria de un ordenador, resultan excesivamente mecánico de cabezas lectores y eso supone un retraso importante en el acceso de la información.
Tipos básicos de fichero
Ficheros secuenciales:
- Almacenan una secuencia de datos de cualquier tipo (per todos del mismo tipo). Por ejemplo, puedo tener un fichero que almacena una secuencia de enteros, de reales, de vectores de lo que sea, de registros de cualquier tipo, etc.
- No los podemos editar con un editor de textos ( o bueno, podemos pero no vamos a entender nada).
- Para crearlos, acceder a la información, o modificarlos lo habitual es hacerlo por programa.
Ficheros de texto:
- Alamacenan únicamente caracteres codificados en ASCII.
Por consiguiente puedo acceder a la información que contienen haciendo uso de un editor de textos (aunque habrá caracteres que no podré ver al ser caracteres no representables).
- Para crearlos, acceder a la información, o modificarlos, podría hacer indistintamente uso de un programa o de un editor de textos (aunque desde el editor tendré problemas con los caracteres no representables).
Si nos damos cuenta, tanto el uno como el otro son exactamente lo mismo (muchos bytes uno detrás de otro). Por lo tanto, lo único que varía entre un fichero secuencial binario y un fichero de texto, es su contenido lógico. UN fichero sea del tipo que sea podemos luego interpretarlo como queramos. Es decir, ¿puedo coger un fichero de texto, o viceversa? Bueno, con ciertas matizaciones (por ejemplo, que el número de bytes que contiene sea múltiplo del tipo del fichero secuencial, si es de texto y pretendo abrirlo como secuencial), ¿porque no? Sin más la información luego puede resultarme incomprensible.
Martínez guardado a modo carácter sería 77/97/114/116... si después intentamos leerlo a modo entero. Porque recogerá el modo ASCII del carácter.
1341248311 > te ocupara 10 bytes como caracteres y 4 bytes en texto binario.
Hay que tener claro que es que, y como la guardamos. Ejemplo profe no puedes interpretar una factura de la luz como tu nomina!! XD
Ficheros secuenciales
Cuando me refiero a un fichero, la palabra secuencial tiene que ver con el tipo de acceso a la información de que dispongo, en este caso, un acceso secuencial.
Un fichero secuencial de datos de tipo "tpDato" es un estructura de datos cuyo dominio de valores son las secuencias finitas de datos de tipo "tpDato", con un conjunto restringido de operadores, que fundamentalmente permiten sólo el acceso secuencial a sus componentes.
Lo que significaba y supone el acceso secuencial, es que, en un momento dado, sólo puede accederse de forma inmediata a uno de los componentes del fichero, y para acceder a un elemento es preciso haber accedido antes a todos los elementos anteriores.
Es decir, con un vector por ejemplo, yo puedo directamente acceder a la componente 1000 del vector si es justo ése el dato que necesito. Con un fichero secuencial, si yo quiero el dato 1000, tengo primero que acceder a los 999. Por tanto, los accesos son muchos más lentos, debido a dos razones diferentes:
- El dispositivo de almacenamiento es más lento (los discos duros son mucho más lentos que las memorias).
- El acceso en el caso del fichero es secuencial, mientras que en memoria el acceso es directo.
0 comentarios:
Publicar un comentario