Los ficheros surgen de la necesidad de almacenar información una vez que termina el programa y poder usarla 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 lentos, ya que supone el desplazamiento
mecánico de cabezas lectoras y eso supone un retraso importante en el acceso a
la información.
Tipos básicos de ficheros
Ficheros secuenciales
Almacenan una secuencia de
datos de cualquier tipo (pero 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
Almacenan únicamente
caracteres codificados en ASCII.
Por consiguiente, para acceder
a la información o modificarlos, podría hacer uso indistintamente de un
programa o 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 uno 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 secuencial que
contiene datos del tipo que sea y abrirlo como si fuera un fichero de texto, y
viceversa?
Bueno, con ciertas
matizaciones, por ejemplo, que el número de bytes que contiene sea múltiplo del
tipo de fichero secuencial, s es de texto y resulta incomprensible.
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 una estructura de datos cuyo dominio de valores son las
secuencias finitas de datos del tipo “tpDato”, con un conjunto restringido de
operadores, que fundamentalmente permiten sólo el acceso secuencial a sus
componentes.
Lo que significa 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 acceder directamente a la componente 1000 del vector si es
justo el dato que necesito.
Con un fichero secuencial, si
yo quiero el dato 1000 tengo que acceder primero a los 999 anteriores. Por
tanto los accesos son mucho más lentos, debido a dos razones diferentes:
è El dispositivo de almacenamiento es más
lento (los discos duros son más lentos que las memorias)
è El acceso en el caso del fichero es
secuencial, mientras que en memoria el acceso es directo.
Es útil para guardar y
recuperar información, pero bastante inútil para buscar de manera eficiente
información en él.
0 comments:
Publicar un comentario