ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ficheros En C Y C++


Enviado por   •  13 de Septiembre de 2014  •  8.722 Palabras (35 Páginas)  •  229 Visitas

Página 1 de 35

1 Generalidades:

Muy a menudo necesitamos almacenar cierta cantidad de datos de forma más o menos

permanente. La memoria del ordenador es volatil, y lo que es peor, escasa y cara. De

modo que cuando tenemos que guardar nuestros datos durante cierto tiempo tenemos que

recurrir a sistemas de almacenamiento más económicos, aunque sea a costa de que sean

más lentos.

Durante la historia de los ordenadores se han usado varios métodos distintos para el

almacenamiento de datos. Al principio se recurrió a cintas de papel perforadas, después a

tarjetas perforadas. A continuación se pasó al soporte magnético, empezando por grandes

rollos de cintas magnéticas abiertas.

Hasta aquí, todos los sistemas de almacenamiento externo eran secuenciales, es decir, no

permitían acceder al punto exacto donde se guardaba la información sin antes haber

partido desde el principio y sin haber leído toda la información, hasta el punto donde se

encontraba la que estabamos buscando.

Con las cintas magnéticas empezó lo que con el tiempo sería el acceso aleatorio a los

datos. Se podía reservar parte de la cinta para guardar cierta información sobre la

situación de los datos, y añadir ciertas marcas que hicieran más sencillo localizarla.

Pero no fué hasta la aparición de los discos magnéticos cuando ésta técnica llegó a su

sentido más amplio. En los discos es más sencillo acceder a cualquier punto de la

superficie en poco tiempo, ya que se accede al punto de lectura y escritura usando dos

coordenadas físicas. Por una parte la cabeza de lectura/escritura se puede mover en el

sentido del radio del disco, y por otra el disco gira permanentemente, con lo que

cualquier punto del disco pasa por la cabeza en un tiempo relativamente corto. Esto no

pasa con las cintas, donde sólo hay una coordenada física.

Con la invención y proliferación de los discos se desarrollaron los ficheros de acceso

aleatorio, que permiten acceder a cualquier dato almacenado en un fichero en

relativamente poco tiempo.

Actualmente, los discos duros tienen una enorme capacidad y son muy rápidos, aunque

aún siguen siendo lentos, en comparación con las memorias RAM. El caso de los CD es

algo intermedio. En realidad son secuenciales en cuanto al modo de guardar los datos,

cada disco sólo tiene una pista de datos grabada en espiral. Sin embargo, este sistema,

combinado con algo de memoria RAM, proporciona un acceso muy próximo al de los

discos duros.

En cuanto al tipo de acceso, en C y C++ podemos clasificar los archivos según varias

categorías:

http://localhost/conclase/c/ficheros/para-pdf/curso.php?cap=001 (1 de 3) [19/01/2004 20:08:06]

Manejo de archivos. Capítulo 001

1. Dependiendo de la dirección del flujo de datos:

m De entrada: los datos se leen por el programa desde el archivo.

m De salida: los datos se escriben por el programa hacia el archivo.

m De entrada/salida: los datos pueden se escritos o leídos.

2. Dependiendo del tipo de valores permitidos a cada byte:

m De texto: sólo están permitidos ciertos rangos de valores para cada byte.

Algunos bytes tienen un significado especial, por ejemplo, el valor

hexadecimal 0x1A marca el fin de fichero. Si abrimos un archivo en modo

texto, no será posible leer más allá de un byte con ese valor, aunque el

fichero sea más largo.

m Binarios: están permitidos todos lo valores para cada byte. En estos

archivos el final del fichero se detecta de otro modo, dependiendo del

soporte y del sistema operativo. La mayoría de las veces se hace

guardando la longitud del fichero. Cuando queramos almacenar valores

enteros, o en coma flotante, o imágenes, etc, deberemos usar este tipo de

archivos.

3. Según el tipo de acceso:

m Archivos secuenciales: imitan el modo de acceso de los antiguos ficheros

secuenciales almacenados en cintas magnéticas y

m Archivos de acceso aleatorio: permiten acceder a cualquier punto de ellos

para realizar lecturas y/o escrituras.

4. Según la longitud de registro:

m Longitud variable: en realidad, en este tipo de archivos no tiene sentido

hablar de longitud de registro, podemos considerar cada byte como un

registro. También puede suceder que nuestra aplicación conozca el tipo y

longitud de cada dato almacenado en el archivo, y lea o escriba los bytes

necesarios en cada ocasión. Otro caso es cuando se usa una marca para el

final de registro, por ejemplo, en ficheros de texto se usa el carácter de

retorno de línea para eso. En estos casos cada registro es de longitud

diferente.

m Longitud constante: en estos archivos los datos se almacenan en forma de

registro de tamaño contante. En C usaremos estructuras para definir los

registros. C dispone de funciones de librería adecuadas para manejar este

tipo de ficheros.

m Mixtos: en ocasiones pueden crearse archivos que combinen los dos tipos

de registros, por ejemplo, dBASE usa registros de longitud constante, pero

añade un registro especial de cabecera al principio para definir, entre otras

cosas, el tamaño y el tipo de los registros.

Es posible crear archivos combinando cada una de estas categorías, por ejemplo:

archivos secuenciales de texto de longitud de registro variable, que son los típicos

archivos de texto. Archivos de acceso aleatorio binarios de longitud de registro

constante, normalmente usados en bases de datos. Y también cualquier combinación

menos corriente, como archivos secuenciales binarios de longitud de registro constante,

etc.

http://localhost/conclase/c/ficheros/para-pdf/curso.php?cap=001 (2 de 3) [19/01/2004 20:08:06]

Manejo de archivos. Capítulo 001

En cuanto a cómo se definen estas propiedades, hay dos casos. Si son binarios o de texto

o de entrada, salida o entrada/salida, se define al abrir el fichero, mediante la función

fopen en C o mediante el método open de fstream en C++.

La función open usa dos parámetros. El primero es el nombre del fichero que contiene el

archivo. El segundo es em modo que es una cadena que indica el modo en que se abrirá

el archivo: lectura o escritura, y el tipo de datos que contiene: de texto o binarios.

En C, los ficheros admiten seis modos en cuanto a la dirección del flujo de datos:

l r: sólo lectura. El fichero

...

Descargar como (para miembros actualizados) txt (72 Kb)
Leer 34 páginas más »
Disponible sólo en Clubensayos.com