Академический Документы
Профессиональный Документы
Культура Документы
Archivos secuenciales
y directos
25/05/2020
Página 2 de 18
Tabla de contenido
INTRODUCCIÓN...................................................................................................................3
¿Qué es un Archivo?...............................................................................................................4
Archivo de texto................................................................................................................9
Archivo binario................................................................................................................10
Consulta directa...............................................................................................................17
25/05/2020
Página 3 de 18
INTRODUCCIÓN
Cuando se programa en C++, se usa la memoria principal o memoria
RAM como único medio de almacenamiento (usando variables,
arreglos o estructuras de datos más complejas), con el inconveniente
que esto representa: la volatilidad de la memoria RAM; es decir, si se
apaga la computadora se pierden los datos. Además, algunas
aplicaciones exigen transportar los datos de una computadora a otra.
Es por esto que surge la necesidad de almacenar dichos datos de
forma permanente que permita retenerlos en ciertos dispositivos de
almacenamiento secundario por un período de tiempo largo sin el
suministro de energía, de tal forma que permitan transportarlos y
utilizarlos en otro equipo computacional.
Al desarrollar la programación a través de manejos de archivos, existe
una estrecha relación entre la memoria principal, el microprocesador y
los dispositivos de almacenamiento secundario ya que el
procesamiento que realiza una computadora es tarea absoluta del
microprocesador en conjunción con la memoria principal; es decir, los
dispositivos de almacenamiento secundario (diskettes, discos duros,
CD’s, flash drives, etc.) no procesan datos, sólo los almacenan. En
estos dispositivos sólo se reflejan los datos previamente procesados y
funcionan exclusivamente como una bodega. Esto repercute de
manera significativa al momento de programar archivos, ya que para
hacerle modificaciones a los datos de un registro previamente
almacenado es necesario primero “cargarlo” en la memoria principal,
es decir, localizar el registro en el archivo y leerlo para colocar sus
datos en la memoria RAM, ahí modificarlo y posteriormente grabarlo
en la misma posición en la que se encontraba, sin embargo estas
operaciones no se realizan directamente, sino a través de la unidad
aritmética-lógica, la unidad de control y los registros del
microprocesador.
Pero ¿Qué es un archivo?, bueno, esa pregunta la responderemos en
seguida.
25/05/2020
Página 4 de 18
¿Qué es un Archivo?
Un archivo o fichero informático es un conjunto de bits que son
almacenados en un dispositivo. Un archivo es identificado por un
nombre y la descripción de la carpeta o directorio que lo contiene. A
los archivos informáticos 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 mayoría
de los casos, simplemente un flujo unidimensional de bits, que es
tratado por el sistema operativo como una única
unidad lógica. Un archivo de datos informático
normalmente tiene un tamaño, que generalmente
se expresa en bytes; en todos los sistemas
operativos modernos, el tamaño puede ser
cualquier número entero no negativo de bytes hasta
un máximo dependiente del sistema. Depende del
software que se ejecuta en la computadora el
interpretar esta estructura básica como por ejemplo
un programa, un texto o una imagen, basándose en
su nombre y contenido. Los tipos especiales de
archivos, como los nodos de dispositivo que
representan simbólicamente partes del hardware, no consisten en un
flujo de bits y no tienen tamaño de archivo.
En pocas palabras “Un fichero o archivo es un conjunto de datos
estructurados que pueden estar almacenados en un soporte de datos
de forma que puedan ser tratados o utilizados de forma individual o
global. Cada fichero se tiene que identificar con un nombre. Los
elementos que forman un fichero se llaman registros y dichos registros
se definen como la unidad mínima de información completa de un
fichero.”
25/05/2020
Página 5 de 18
¿Cómo se escribe un
Archivo?
Ahora veremos cómo crear los archivos y cómo escribir datos en ellos,
para que otro programa después pueda abrirlos y leerlos.
Uno puede crear un archivo vacío abriéndolo de la siguiente manera:
archivo = open(nombre, 'w')
El segundo parámetro de la función open indica el uso que se le dará
al archivo. 'w' significa «escribir» (write en inglés).
Si el archivo señalado no existe, entonces será creado. Si ya existe,
entonces será sobreescrito. Hay que tener cuidado entonces, pues
esta operación elimina los datos del archivo que existía previamente.
Una vez abierto el archivo, uno puede escribir datos en él usando el
método write:
a = open('prueba.txt', 'w')
25/05/2020
Página 6 de 18
a.write('Hola ')
a.write('mundo.')
a.close()
Chao pescao.
25/05/2020
Página 7 de 18
25/05/2020
Página 8 de 18
archivo = open('himno.txt')
for linea in archivo:
print linea[0]
archivo.close()
El ciclo for es ejecutado cuatro veces, una por cada línea del archivo.
La salida del programa es:
P
e
p
t
Otro ejemplo: el siguiente programa imprime cuántos símbolos hay en
cada línea:
archivo = open('himno.txt')
for linea in archivo:
print len(linea)
archivo.close()
La salida es:
11
20
13
19
Note que el salto de línea (el “enter”) es considerado en la cuenta:
+---+---+---+---+---+---+---+---+---+---+---+
| P | u | r | o | | C | h | i | l | e | \n| = 11 símbolos
+---+---+---+---+---+---+---+---+---+---+---+
25/05/2020
Página 9 de 18
'Hola'
Si modificamos el programa para eliminar el salto de línea:
archivo = open('himno.txt')
for linea in archivo:
print len(linea.strip())
archivo.close()
entonces la salida es:
10
19
12
18
Lo importante es comprender que los archivos son leídos línea por
línea usando el ciclo for.
Listo, una vez teniendo conocimiento de esto podemos proseguir
a ver los tipos de archivos (o ficheros) que hay.
Clasificación de archivos
por el tipo de datos
Este tipo de clasificacion se base en el contenido. Estos se dividen en
dos
1. Archivo de texto
2. Archivo Binario
Archivo de texto
Los archivos de texto son los más sencillos de manejar, pues, como ya
se ha mencionado, para trabajar con ellos se emplean los operadores
de inserción y extracción que ya se conocen de la consola.
25/05/2020
Página 10 de 18
25/05/2020
Página 11 de 18
Clasificación de archivos
por el tipo de acceso
De acuerdo a la forma de acceder los datos de los archivos, éstos se
clasifican en secuenciales o directos (también conocidos como de
acceso directo, relativos o aleatorios).
Archivos de acceso secuencial
Es aquel fichero cuyos registros pueden ser tratados en secuencia,
unos datos detrás de otros. Después de haber leído un registro el
dispositivo de lectura se posiciona al principio del siguiente registro.
Este tipo de ficheros son muy convenientes cuando tenemos que leer
todos los datos del fichero. No podemos añadir datos a un fichero
secuencial, se copia todo en un fichero nuevo.
Como su nombre lo indica, en este tipo de archivos los registros se
graban en secuencia o consecutivamente y deben accesarse de ese
mismo modo, es decir, conforme se van insertando nuevos registros,
éstos se almacenan al final del último registro almacenado; por lo
tanto, cuando se desea consultar un registro almacenado es necesario
recorrer completamente el archivo leyendo cada registro y
comparándolo con el que se busca. En este tipo de archivo se utiliza
una marca invisible que el sistema operativo coloca al final de los
archivos: EOF (End of File), la cual sirve para identificar dónde termina
el archivo.
25/05/2020
Página 12 de 18
25/05/2020
Página 13 de 18
25/05/2020
Página 14 de 18
25/05/2020
Página 15 de 18
25/05/2020
Página 16 de 18
25/05/2020
Página 17 de 18
Consulta directa
A continuación, se muestra un diagrama de flujo de una rutina de
consulta directa de un registro en particular. En esta rutina se maneja
el archivo PRODUCTO.SEC según el registro declarado. A diferencia
del recorrido secuencial, en el que es necesario leer cada registro del
archivo, en la consulta directa se calcula la dirección física del registro
solicitado y se posiciona el apuntador del archivo directamente en ese
registro para leerlo.
25/05/2020
Página 18 de 18
25/05/2020