Académique Documents
Professionnel Documents
Culture Documents
SUPERIOR DE CALKINI EN EL
ESTADO DE CAMPECHE
NDICE
NDICE..................................................................................................................2
INTRODUCCIN..................................................................................................3
ARCHIVOS SECUENCIALES Y DIRECTOS.......................................................4
Archivos:............................................................................................................4
Apertura de archivos:....................................................................................5
Clasificacin de archivos por el tipo de datos:..............................................5
Clasificacin de archivos por el tipo de acceso:...............................................7
Archivos de Acceso Secuencial:.......................................................................7
Consulta o recorrido Secuencial:..................................................................8
Archivos Secuenciales Indexado:.................................................................9
Codificacin de Archivos Secuenciales:......................................................10
Archivos de Acceso Directo:...........................................................................16
Consulta Directa:.........................................................................................17
Organizacin Directa:..................................................................................18
Codificacin de Archivos Directos:..............................................................19
Funciones y Mtodos de Archivos:.................................................................25
Tabla de Caractersticas:................................................................................28
CONCLUSIN....................................................................................................30
BIBLIOGRAFA...................................................................................................31
REFERENCIA ELECTRNICA..........................................................................31
INTRODUCCIN
Archivos:
Un archivo o fichero informtico es un conjunto de bits que son almacenados
en un dispositivo. Un archivo es identificado por un nombre y la descripcin de
la carpeta o directorio que lo contiene. A los archivos informticos se les llama
as porque son los equivalentes digitales de los archivos escritos en
expedientes, tarjetas, libretas, papel o microfichas del entorno de oficina
tradicional.
En lo que concierne al sistema operativo un archivo es, en la mayora de los
casos, simplemente un flujo unidimensional de bits, que es tratado por el
sistema operativo como una nica unidad lgica. Un archivo de datos
informtico normalmente tiene un tamao, que generalmente se expresa en
bytes; en todos los sistemas operativos modernos, el tamao puede ser
cualquier nmero entero no negativo de bytes hasta un mximo dependiente
del sistema. Depende del software que se ejecuta en la computadora el
interpretar esta estructura bsica como por
ejemplo un programa, un texto o una imagen,
basndose en su nombre y contenido. Los tipos
especiales de archivos, como los nodos de
dispositivo que representan simblicamente
partes del hardware, no consisten en un flujo de
bits y no tienen tamao de archivo.[ CITATION
Gar03 \l 2058 ]
El nombre de un archivo y la ruta al directorio
del archivo lo identifica de manera unvoca entre
todos los dems archivos del sistema
informtico -no puede haber dos archivos con el
mismo nombre y ruta-. El aspecto del nombre depende del tipo de sistema
informtico que se use.
Al igual que ocurre con la escritura en pantalla, a la hora de manejar los
ficheros desde C++, podemos emplear las funciones que ya han sido
interpretados, o bien emplear otras nuevas posibilidades que aporta C++.
Tambin al igual que ocurra con la pantalla, el manejo de ficheros se basar en
flujos de entrada y salida. [ CITATION Gar03 \l 2058 ]
Tenemos las clases fstream (fichero, en general), ifstream (fichero de entrada)
y ofstream (fichero de salida), todas ellas definidas en "fstream.h". Leeremos y
escribiremos con << y >>, al igual que para la pantalla. Cerraremos un fichero
con "close" (tanto si lo hemos abierto como para leer o para escribir) y
comprobaremos si se ha terminado un fichero de entrada con "eof".[ CITATION
Gar03 \l 2058 ]
Apertura de archivos:
Antes de escribir o leer datos de un archivo es necesario abrirlo. Al abrir el
archivo se establece comunicacin entre el programa y el sistema operativo
acerca de cmo accesarlo. Es necesario que el programa le proporcione al
sistema operativo el nombre completo del archivo y la intencin de uso (leer o
escribir datos), entonces se definen reas de comunicacin entre ellos. Una de
estas reas es una estructura que controla el archivo (alias del archivo), de
esta forma cuando se solicita una operacin del archivo, se recibe una
respuesta que informa el resultado mediante un apuntador. Cada archivo
abierto requiere un alias para poder realizar operaciones en l.[ CITATION
Gar03 \l 2058 ]
La estructura del archivo contiene informacin del archivo que se est usando,
as como el tamao actual y la localizacin de los buffers de datos.
Archivos de Texto:
Son aquellos que pueden contener cualquier clase de datos y de tal manera
que son entendibles por la gente. Los datos en un archivo de texto se
almacenan usando el cdigo ASCII, en el cual cada carcter es representado
por un simple byte. Debido a que los archivos de texto utilizan el cdigo ASCII,
se pueden desplegar o imprimir. En este tipo de archivos, todos sus datos se
almacenan como cadenas de caracteres, es decir, los nmeros se almacenan
con su representacin ASCII y no su representacin numrica, por lo tanto, no
se pueden realizar operaciones matemticas directamente con ellos. Pr
ejemplo: Si se guarda el dato 3.141592 en un archivo de texto, se almacena
como 3.141592 y ntese que 3.141592 3.14159. [ CITATION Ign16 \l
2058 ]
Archivos Binarios:
Este tipo de archivos almacenan los datos numricos con su representacin
binaria. Pueden ser archivos que contienen instrucciones en lenguaje mquina
listas para ser ejecutadas. Por ejemplo, cuando escribimos un programa en un
lenguaje en particular (como C++, Pascal, Fortran, etc), tenemos las
instrucciones almacenadas en un archivo de texto llamado programa fuente,
pero una vez que lo sometemos a un proceso de compilacin y ejecucin
nuestro programa lo trasladamos a un programa ejecutable (en lenguaje
mquina), que es directamente entendido por la computadora y se crea un
archivo binario. En este tipo de archivos tambin se pueden almacenar
diferentes tipos de datos incluyendo datos numricos; sin embargo, cabe
destacar que los datos numricos se graban con su representacin binaria (no
con su representacin ASCII), por tal razn, cuando se despliegan con un
editor de textos o por medio de comandos del sistema operativo, aparecen
caracteres raros que no se interpretan. P. ejem. Si se guarda el dato 27 en un
archivo binario, se almacena como 00001111 y no como 27.[ CITATION
Ign16 \l 2058 ]
Decir que los archivos de texto se pueden referenciar tambin como "rt", "wt",
"at", "rt+", "wt+" y "at+", pero para facilitar ms las cosas, cuando no
especificamos si queremos abrir un archivo de texto o binario, por defecto se
supone que es de texto, es por ello que los modos "r", "w" y "a" se refieren a
archivos de texto.
Hemos de tener cuidado con los modos de apertura de los archivos porque al
abrir con cualquier modo "w", si ya exista el archivo, se borrar la informacin
que contuviese. Si no existe, lo crear. Por el contrario, con el modo "a"
tambin lo crear si no existe el archivo, pero si ya existe, aadir al final del
mismo los datos que escribamos.
Podemos saber si un archivo ha sido abierto correctamente o no. Debido a que
los archivos son punteros a estructuras tipo FILE, podemos conocer su valor al
hacer que apunten a ellas. La forma de hacerlo es comparando el puntero con
la constante predefinida NULL. De esta forma, cuando el puntero valga NULL
(no apunta a ninguna variable o posicin de memoria), es porque ha habido
algn problema al abrir el archivo.
Este problema se puede deber a que no existe el archivo que intentamos abrir
para lectura, que no hay espacio suficiente en el disco al tratar de crear el
archivo, que la unidad de disco no est preparada, que el disco est daado
fsicamente o que la impresora no est conectada. Veamos en ejemplo del
testeo de la existencia de un archivo de texto.
Fclose:
<valor> = fclose (<variable_archivo>);
Donde:
- valor es el valor que nos dir si ocurre algn error cerrando el archivo. 0 indica
que todo ha ido bien.
- variable_archivo es la variable declarada de la forma: FILE
*<variable_archivo>
Cuando terminemos de trabajar con un archivo hemos de realizar la operacin
de cierre del archivo. Si no lo hacemos podemos ocasionar la prdida de todos
los datos del mismo. Si se necesitan cerrar varios archivos a la vez, nos
podemos ahorrar varios fclose utilizando la funcin fcloseall.
Fcloseall:
<numero_archivos> = fcloseall ();
Donde:
- numero_archivos es una variable entera que indica el nmero de archivos
cerrados, o EOF si ha ocurrido un error.
Ahora veamos unas funciones para escribir y leer datos de un archivo de texto.
Putc:
Esta funcin escribe un carcter en un archivo de texto. Devuelve un entero si
la escritura es correcta. De
otra forma devuelve el valor EOF que indica que ha habido un error. Su formato
es:
putc (<carcter>, <var_fich>);
Donde:
- carcter es el carcter que se desea escribir en el archivo.
- var_fich es la variable declarada como FILE.
Ejemplos:
- putc ('a', f1);
- c = 'G'; putc (c, f1);
Ni que decir tiene que cuando usemos funciones para escribir en archivos,
estos tendrn que haber sido abiertos en modo escritura o para aadir datos.
Getc:
Esta funcin lee un carcter de un archivo de texto abierto en modo lectura.
Devuelve un entero si la lectura es correcta. De otra forma devuelve el valor
EOF que indica que hemos llegado al final del archivo. Su formato es:
<carcter> = getc (<var_fich>);
Donde:
Aparece en este ejemplo una nueva funcin, la funcin exit (). Esta funcin
provoca que acabe el programa con lo que la funcin main () devuelve un valor,
en este caso el valor 1. Recordamos que toda funcin devuelve un valor.
Fscanf:
Esta funcin trabaja de la misma manera que scanf, pero leyendo los datos
formateados de un archivo. Su
sintaxis es:
fscanf (<var_fich>, <cadena_de_control>, <lista_variables>);
Donde:
- var_fich es la variable declarada como FILE.
- cadena_de_control son las cadenas de control que se desean leer, tales como
%d, %s, %f, %x, etc...
- lista_variables son las variables que contendrn los valores de la lectura del
archivo que deben coincidir con sus respectivas cadenas de control.
Ejemplos:
- fscanf (fich, "%s%d%f", nombre, &edad, &altura);
Fprintf:
Esta funcin trabaja de la misma manera que printf, pero escribiendo los datos
formateados sobre un archivo. Su sintaxis es:
fprintf (<var_fich>, <cadena_de_control>, <lista_variables>);
Donde:
- var_fich es la variable declarada como FILE.
- cadena_de_control son las cadenas de control que se desean escribir, tales
como %d, %s, %f, etc...
- lista_variables son las variables que contendrn los valores para la escritura
en el archivo que deben coincidir con sus respectivas cadenas de control.
Ejemplos:
- fprintf (fich, "%s%d%f", nombre, edad, altura);
Gestin de un Archivo Secuencial de Estructuras:
Los componentes o registros de un archivo pueden ser de cualquier tipo de
datos, desde tipos bsicos (enteros, float, char, etc..) hasta estructuras de
datos.
Las operaciones en cualquiera de los casos son siempre iguales. Veamos un
ejemplo de un archivo de estructuras:
- Apertura:
- Escritura:
fwrite (&cliente, sizeof(cliente), 1, f);
- Lectura:
fread (&cliente, sizeof(cliente), 1, f);
Las operaciones bsicas en el mantenimiento o gestin de un archivo
secuencial son las siguientes:
- Comprobacin de la existencia del archivo: Se abrir el archivo en modo
lectura, si no existe, se permitir la creacin del mismo, volvindolo a abrir en
modo escritura.
- Altas: Se abrir el archivo en modo aadir.
- Bajas: Utilizaremos dos archivos: el maestro y otro auxiliar. El maestro lo
abriremos para lectura, y el auxiliar para escritura. Iremos transfiriendo todos
los registros del maestro al auxiliar excepto el que queramos borrar. A
continuacin, borraremos el maestro, y asignaremos al auxiliar el nombre del
maestro.
- Modificaciones: Procederemos de igual forma que para las bajas, salvo que
transferiremos todos los registros al auxiliar, los no modificados y el modificado.
Borraremos el maestro y renombraremos el auxiliar para darle el nombre del
maestro.
- Consultas: Se abrir el archivo en modo lectura.
- Listado por pantalla: Se abrir el archivo en modo lectura. Se ir leyendo
informacin mientras no se llegue al final del archivo.
- Listado por impresora: Utilizaremos dos archivos, el maestro y el de
impresora. El primero lo abriremos para lectura, y el segundo para escritura, del
siguiente modo:
De tal forma que todo lo que escribamos en fimp saldr por impresora. Por tal
motivo, debemos pensar que se trata de un archivo de texto, por lo cual,
usaremos funciones de escritura en archivos de texto.
[ CITATION Lui08 \l 2058 ]
Con el uso del acceso directo se puede acceder de forma directa a la posicin
que se requiera sin tener que pasar por las posiciones anteriores, como si
fueran arreglos en la memoria. Lo cual permitir tomar modifica e insertar
informacin en la posicin que se desee. Las operaciones de lectura y/o
escritura pueden hacerse en cualquier punto del archivo.
Muchas veces se desea acceder un dato concreto de un archivo en una
posicin relativa conocida de antemano. Por ejemplo, queremos leer o escribir
en el registro 713 de un archivo. El acceso directo est pensado para resolver
fcilmente estas operaciones. Un archivo de acceso directo permite leer o
escribir bloques de informacin en un punto cualquiera del archivo, que se pasa
como parmetro en la llamada del sistema correspondiente. Hay total libertad
en el orden en que se accede a los registros. Por ejemplo, el 15, luego 713,
luego 9 este modo de acceso es muy til en sistema de base de datos.
Organizacin Directa:
Un archivo est organizado en modo directo cuando el orden fsico no
corresponde con el orden lgico. Los datos se sitan en el archivo y se accede
a ellos directa aleatoriamente mediante su posicin, es decir, el lugar relativo
que ocupan.
Esta organizacin tiene la ventaja que se pueden leer y escribir registros en
cualquier orden y posicin. Son muy rpidos de acceso a la informacin que
contiene.
La organizacin directa tiene el inconveniente de que se necesita programar la
relacin existente entre el contenido de un registro y la posicin que ocupa. El
acceso a los registros en modo directo implica la posible existencia de espacios
libres dentro del soporte, y por consecuencia pueden existir espacios libres
entre registros.
Teniendo en cuenta que los registros empiezan a contarse desde el cero, para
hacer una lectura del registro nmero 6 usaremos:
En el caso de streams:
Borrar registros:
Si el campo Valido tiene un valor prefijado, por ejemplo 'S' o ' ', el registro es
vlido. Si tiene un valor prefijado, por ejemplo 'N' o '*', el registro ser invlido o
se considerar borrado.
De este modo, para borrar un registro slo tienes que cambiar el valor de ese
campo.
Pero hay que tener en cuenta que ser el programa el encargado de tratar los
registros del modo adecuado dependiendo del valor del campo Valido, el hecho
de marcar un registro no lo borra fsicamente.
Si se quiere elaborar ms, se puede mantener un fichero auxiliar con la lista de
los registros borrados. Esto tiene un doble propsito:
Que se pueda disear una funcin para sustituir a fseek () de modo que
se tengan en cuenta los registros marcados.
Que, al insertar nuevos registros, se puedan sobrescribir los
anteriormente marcados como borrados, si existe alguno.
2- Hacer una copia del fichero en otro fichero, pero sin copiar el registro
que se quiere borrar. Este sistema es ms tedioso y lento, y requiere
cerrar el fichero y borrarlo o renombrarlo, antes de poder usar de nuevo
la versin con el registro eliminado.
Lo normal es hacer una combinacin de ambos, durante la ejecucin normal
del programa se borran registros con el mtodo de marcarlos, y cuando se
cierra la aplicacin, o se detecta que el porcentaje de registros borrados es alto
o el usuario as lo decide, se "empaqueta" el fichero usando el segundo
mtodo.
Funcin Fwrite:
La funcin fwrite transfiere a un archivo un nmero especificado de bytes
empezando en una posicin especificada de memoria. Los datos se escriben al
principio de la posicin en el archivo indicada mediante el apuntador de
posicin de un archivo. La funcin fread transfiere un nmero especificado de
bytes de la posicin en el archivo, especificado por el apuntador de posicin de
Por ejemplo, para crear una estructura que permita almacenar los datos de un
cliente puede declararse de la siguiente manera:
De este modo se crea una estructura de nombre DatosCliente con los campos
descritos, en el programa se podrn declarar variables de tipo DatosCliente y
para acceder a cada uno de los campos se utilizar la notacin registro. campo.
La declaracin de una variable de este tipo se har:
De esta manera la variable micliente tiene los cuatro campos definidos para el
tipo de estructura, y el nombre del cliente se accede con la siguiente lnea:
putback (char c) devuelve el carcter c al flujo de entrada (de modo que sera lo
primero que se leera en la prxima operacin de entrada).
[ CITATION Ana16 \l 2058 ]
Funciones miembros de Fstream: Manejo de Archivos.
FILE:
Declara la variable donde se almacena la ruta del archivo a utilizar,
generalmente se coloca como global. Su sintaxis es la siguiente:
FILE *nombre_variable;
fopen ();
Permite abrir un archivo, devolviendo un valor NULL sino se abri
correctamente y TRUE si ocurre lo contrario. Su sintaxis es la siguiente:
nombre_FILE = fopen (< nombre de archivo>, < modo>);
Modo:
r = Slo lectura.
w = Abre o sobrescribe.
a = Aade al fichero.
r+ = Lectura y escritura.
w+ = Lectura, escritura y sobrescribe.
a+ = Aadir, lectura y escritura.
NOTA: Despus del modo se incluye el tipo (b = binario, t = texto).
fclose ();
Permite cerrar un archivo, al final de un programa es necesario cerrar un
archivo para no perder informacin. Su sintaxis es la siguiente:
fclose(<nombre_FILE>);
fputs ();
Escribe una cadena en un fichero. Su sintaxis es la siguiente:
fputs(<variable_char>, *nombre, <variable_FILE>);
fwrite ();
Escribe en un fichero uno o varios registros de la misma longitud,
almacenados a partir de una direccin; trabajo en conjunto con fread (). Su
sintaxis es la siguiente:
fwrite(<®istro>, sizeof(<estructura>),1, <variable_FILE>);
fprintf ();
fseek ();
Permite posicionar el cursor dentro del archivo para despus realizar una
bsqueda. Su sintaxis es la siguiente:
fseek(<variable_FILE>, <longitud>, <origen>);
Origen: Es la posicin a mandar el cursor:
Tabla de Caractersticas:
Secuencial Directa
Definicin Es la forma bsica de organizar Un archivo est organizado en
un conjunto de registros, que modo directo cuando el orden
forman un archivo, utilizando fsico no corresponde con el orden
una organizacin secuencial. lgico.
CONCLUSIN
En esta respectiva investigacin se desarrollaron una serie temas relacionados
con los archivos o ficheros que se puede conformar en un programa de C++,
dividindolos de manera explcita por el tipo de datos como el textual y el
binario, y la divisin implcita con el tipo de acceso a los archivos, es decir,
secuencial y directo o aleatorio.
Se pudo observar que primero se mostr el contenido del desarrollo,
detallndolo con sus respectivos subtemas. Al final se resumi con una tabla de
caractersticas contextuando tambin las ventajas y desventajas.
Ahora, es correspondiente resumir de manera conclusiva el contenido ms
importante desde el punto de vista particular.
BIBLIOGRAFA
Aguilar, L. J. (2005). Programacin en C: Metodologa, Algoritmos y Estructura
de Datos. Madrid: McGRAW-HILL.
Aguilar, L. J. (2008). Fundamentos de Programacin:Algoritmos, Estructura de
Datos y Objetos. Madrid: McGRAW-HILL.
Badel, G. (2003). Turbo C. Programacin en manejo de archivos. Microbit.
Sierra, F. C. (2009). Enciclopedia del lenguake C++. Madrid : AlfaOmega.
REFERENCIA ELECTRNICA