SlideShare una empresa de Scribd logo
1 de 30
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Repaso: Archivos. Objetivos. Concepto General.
Operaciones. Organización. Acceso.
Tema XII: Archivos. Operaciones básicas sobre
archivos. Gestión de Archivos. Algoritmos clásicos sobre
archivos: modificación, agregado, actualización, corte
de control, unión de archivos (merge). Eliminar
elementos de un archivo: borrado físico. borrado
lógico. Nociones generales sobre bases de datos.
Programacion I – Mgter. Vallejos, Oscar A.
Objetivo
Las estructuras de datos vistas: son definidas en
el algoritmo y ocupan memoria RAM, se utilizan
en la ejecución y todos los valores contenidos en
ellas se pierden, a lo sumo, cuando el algoritmo
finaliza.
Es necesario disponer de otras estructuras de
datos que permita guardar su información en
soporte volatil (disco, cinta, cd, etc.) y de esa
forma preservarla aunque el programa finalice
(estructuras de almacenamiento).
Se asocian a un dispostivo de memoria auxiliar
permanente.
Programacion I – Mgter. Vallejos, Oscar A.
Memoria principal y secundaria
Estructuras de datos anteriores
=> utilizan memoria interna
=> memoria principal (es volátil de acceso aleatorio)
Características:
a) Limitada en la cantidad disponible
b) Es volátil
c) Velocidad de acceso elevada
Estructuras de datos tipo archivo utilizan memoria secundaria
(almacenamiento secundario magnético u óptico)
=> medios de almacenamiento fuera de la RAM
=> retienen la información (discos, cintas, cd, etc.).
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos (ficheros)
Es una colección de registros semejantes, guardados en
dispositivos de almacenamientos secundario de la
computadora.
Es una estructura de datos que guarda en un dispositivo
de almacenamiento secundario de una computadora una
colección de elementos del mismo tipo.
En sintesis, un archivo, es una estructura de datos
homogenea.
•ARCHIVOS DE DATOS
•ARCHIVOS DE PROGRAMA
Programacion I – Mgter. Vallejos, Oscar A.
Administración de Archivos
• Cuando se trabaja con un archivo en
almacenamiento secundario y estos pueden
almacenar un gran numero de archivos.
• Un programa no sabe con exactitud donde
residirán los datos (archivo físico).
• El programa envía y recibe información desde y
hacia el archivo (archivo lógico).
• Es necesario que el SO realice ciertas tareas de
relación entre ambos.
Programacion I – Mgter. Vallejos, Oscar A.
Archivos – Estructura de Datos
Objetivos (entre otros...)
• Almacenamiento permanente
• Manipulacion de un gran numero de datos
• Independencia de los programas
• Residentes en soportes externos
Estrutura
Archivos = Colección de Registros
Registros = Colección de campos (tamaño, longitud,...)
Clave  Un campo que identifica al registro
Programacion I – Mgter. Vallejos, Oscar A.
Manejo de buffers
 Memoria intermedia entre un archivo y un
programa, donde los datos residen
provisoriamente hasta ser almacenados
definitivamente en memoria secundaria o donde
los datos residen una vez recuperados de dicha
memoria secundaria. Ocupan memoria RAM.
 El SO es el encargado de manipular los buffers.
 Diferentes tiempos de acceso en la memoria
principal y memoria secundaria.
Programacion I – Mgter. Vallejos, Oscar A.
Tipos de Registros
Registro Físico: Cantidad de datos que puede
transferirse en una operación de I / O a traves
del buffer.
Registro Lógico: Definido por el programador.
Factor de Bloqueo: Numero de Registros Lógicos
que puede contener un Registro Físico.
Programacion I – Mgter. Vallejos, Oscar A.
Jerarquizacion
Base de Datos
Archivos
Registros
Campos
Sub Campos
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Campo es un conjunto de caracteres capaz de suministrar una determinada
información referida a un concepto. Al igual que en las variables, al definir
un campo hay que indicar claramente sus tres características:
Nombre: identifica a ese conjunto de caracteres
Tipo: Tipo de caracteres que puede contener (alfabético, entero,
etc.-)
Tamaño: Cantidad de caracteres que puede contener
Por ejemplo, si tenemos que definir al campo número de documento
resultaría:
•Nombre: documento
•Tipo: numérico
•Tamaño: 8 enteros
Un campo es la entidad lógica más pequeña, consiste en un conjunto de
byte que conforman un dato.
Un campo es la unidad mínima de información de un registro.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Registro es un conjunto de campos referentes a una entidad en
particular y constituyen una unidad para su proceso. Un ejemplo
de un registro puede ser la información de un determinado alumno
universitario, que contiene los campos: libreta universitaria,
apellido y nombre, número de documento, domicilio, fecha de
nacimiento, entre otros campos.
libreta universitaria Apellido y nombre número de documento Domicilio Fecha de nacimiento
Programacion I – Mgter. Vallejos, Oscar A.
Clasificacion según su funcion
• Maestros: Datos permanentes o históricos.
• De Movimientos: Auxiliares. Contienen registros
necesarios para realizar actualizaciones a los
archivos permanentes.
• De Maniobras: Efímeros y auxiliares. Contienen
información de registros seleccionados o semi
elaborados.
• De informes: Contienen datos para ser presentados
a los usuarios.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Soporte: A) Secuenciales; B) Direccionables;
Un soporte secuencial  Org. secuencial
Un soporte direccionable  Distintos tipos de Org.
Organización de Archivos: La organización de un archivo
define la forma en la que los registros se disponen sobre el
soporte de almacenamiento, o también se define la
organización como la forma en que se estructuran los datos en
un archivo. En general, se consideran tres organizaciones
fundamentales:
•Organización secuencial
•Organización directa o aleatoria (random)
•Organización secuencial indexada
Obs: En Pascal standar los archivos son de Org. Secuencial
Turbo Pascal permite el acceso aleatorio o directo en
todos los archivos (excepto en archivos de textos).
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Organización secuencial
No es mas que una sucesión de registros almacenados en
forma consecutiva sobre un soporte externo.
Los registros están ubicados físicamente en una secuencia
usualmente fijada por uno o más campos de control
contenidos dentro de cada registro, en forma ascendente o
descendente.
Esta organización tiene el último registro en particular,
contiene una marca (en general un asterisco) de fin de
archivo, la cual se detecta con funciones tipo EOF (end of
file) o FDA (Fin de Archivo).
Registro 1
Registro 2
Registro 3
.....
Registro n-1
Registro n
EOF
Programacion I – Mgter. Vallejos, Oscar A.
Organización Directa
Los datos se colocan y se acceden aleatoriamente mediante su posición, es
decir, indicando el lugar relativo que ocupan dentro del conjunto de
posiciones posibles.
En esta organización se pueden leer y escribir registros, en cualquier orden y en
cualquier lugar.
Inconvenientes:
a) Establecer la relación entre la posición que ocupa un registro y su
contenido;
b) Puede desaprovecharse parte del espacio destinado al archivo.
Ventaja: Rapidez de acceso a un registro cualquiera.
Programacion I – Mgter. Vallejos, Oscar A.
Organización Indexada
Un archivo con esta organización consta de tres áreas:
 Área de índices
 Área primaria
 Área de excedentes (overflow)
Ventaja:
a) Rápido acceso, y, además, el sistema se encarga de relacionar la posición
b) de cada registro con su contenido por medio del área de índices.
b) Gestiona las áreas de índices y excedentes.
Desventajas:
a) necesidad de espacio adicional para el área de índices.
b) el desaprovechamiento de espacio que resulta al quedar huecos intermedios
libres después de sucesivas actualizaciones.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Organización secuencial: Archivos de Textos
Son casos particulares de los archivos con organización
secuencial. Constan de una serie de lineas, cada una de las
cuales se encuentra constituida por una serie de caracteres,
separadas por una marca de fin de linea la cual es posible
detectar.
Se puede utilizar la instruccion:
Read (id-archivo,var) ….para leer caracter a caracter
Redln (id_archivo, var)… para leer linea a linea
Las instrucciones Write y Read no solo escriben o leen los
datos si no tambien transformacion de los valores.
Ej: valores numericos se convierten en estrng de caracteres
antes de escribirse y viceversa.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Métodos de acceso
El modo de acceso es la manera de acceder a los registros de un
archivo para leer información o para grabar información nueva en
el mismo.
Existen fundamentalmente dos formas de acceso:
Acceso secuencial
Se accede a los registros según secuencia física, en el
orden es que están escritos. Dicho de otro modo, para
acceder al registro N hay que pasar previamente por los
N-1 registros anteriores.
Acceso Directo
Permite el acceso a un registro determinado sin tener
que pasar previamente por los registros anteriores.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Operaciones sobre archivos
Es necesario considerar las operaciones que se pueden realizar con
los mismos. Estas son:
Creación: Definicion del archivo
Apertura: Comunicacion del archivo logico con el fisico.
Cierre: Cerrar la conexion.
Lectura / Consulta: Acceder al archivo para ver su
contenido.
Fin de Archivo: Detecta el final del archivo.
Destrucción: Borra el Archivo.
Reorganizacion: Optimiza la estructura.
Fusion: Reune varios archivos en uno solo.
Actualizacion – Alta: Adicion de registros.
Act. - Baja: Eliminacion o borrado logico de registros.
Act. – Modificacion: Altera la informacion del contenido.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Fin de Archivo
Toda instrucción de ingreso de datos, ya sea desde teclado o desde
un dispositivo magnético, requiere una condición de fin de ingreso
de los datos, con el objeto de determinar cuando se han terminado
los registros de un archivo o cuando ya no se desean ingresar mas
datos desde el teclado. Esta condición la denominamos fin de
archivo conocida como EOF (end of file).
Comenzar
NOTA = 11 No
Si
Parar
Ingresar
NOTA
Comenzar
EOF No
Si
Parar
Leer
{lista de campos}
Programacion I – Mgter. Vallejos, Oscar A.
Mantenimiento de Archivos
Requerimiento: a) Que este creado
b) Abierto en el modo adecuado
Operaciones que se permiten:
Creacion: Se realiza la primera vez. (Basta con..abrir con Rewrite
y luego escribir los datos con Write)
Altas: Añadir nuevos registros al final del archivo (abrir con
Append y luego escribir los datos con Write)
Consulta total: Obligatoriamente en modo secuencial. (Basta
con..abrir con Reset, leer el registro con ReadLn (a) y luego
realizar el proceso, calcular, imprimir, etc.)
Consulta parcial (busqueda): Obligatoriamente en modo
secuencial. (Basta con..abrir con Reset, leer el registro con
ReadLn (a, clave) y luego mostrar).
Obs: En todos los casos es necesario el comando Assign y Close
Programacion I – Mgter. Vallejos, Oscar A.
Mantenimiento de Archivos
Baja: Logica (marca o flag..) o Fisica. Ambos utilizan archivo auxiliar.
Modificacion: Similar a la baja logica.
Borrar. ( ERASE) Este procedimiento nos permite borrar un archivo, el
archivo a borrar no debe estar abierto. Para borrar un archivo se
debe realizar lo siguiente :
1. Asignar el archivo externo a una variable de archivo.
2. Llamar al procedimiento erase
Renombrar (cambia el nombre) un archivo externo. Para renombrar un
archivo se debe hacer los siguiente :
1. Asignar un archivo a la variable archivo
2. Llamar al procedimiento rename
Seek. Sitúa el puntero de posición del archivo en el número de registro
correspondiente.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Pascal
Declaración
Type
<tipo de dato>=record
<nombre de campo1>: tipo1;
<nombre de campo2>: tipo2;
<nombre de campo3>: tipo3;
….
End;
Var
<Id archivo>: text {archivo secuencia de <tipo de dato>}
<nombre de variable>:<tipo de dato> {variable para leer los
registros del archivo}
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Pascal
Instrucciones
Assign (<id_archivo>, <nombre_físico>)
Establece un enlace entre la variable tipo de archivo y el
nombre del archivo en el disco.
Rewrite (<id_archivo>)
Crea y abre el archivo para escritura.
Append(<id_archivo>)
Abre el archivo para operaciones de escritura. Coloca el
puntero al final del archivo.
Reset (<id_archivo>)
Abre el archivo para operaciones de lectura. Coloca el
puntero al inicio del archivo.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Pascal
Instrucciones
WriteLn o Write(<id_archivo>, <lista de variables>)
Cada vez que se escribe en el archivo avanza el puntero de
datos.
ReadLn o Read(<id_archivo>, <lista de variables>)
Con cada lectura avanza el puntero de datos.
Close(<id_archivo>)
Cierre del archivo
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Pascal
Funcion EOF
EOF(<id_archivo>
Detecta la marca de fin de archivo.
Programacion I – Mgter. Vallejos, Oscar A.
Estructura de Datos: Archivos
Pascal
Ejemplo Declaración
Type
Datos_personales = record
NC: integer(3);
AYN: string (30);
T: integer (3);
End;
Arch = text;
Var
F: arch;
Competidor: datos_personales;
NC
AYN
T
Programacion I – Mgter. Vallejos, Oscar A.
Codificación en Pascal p/generar un Archivo
program genero_archivo;
uses NewDelay,Crt,Printer;
const
esc = #27;
type
reg = record
rnrocte : integer;
rnya : string[20];
rsaldo : real;
end;
var
cliente: file of reg;
regcli : reg;
tecla : char;
nrocte, rnrocte :
integer;
nya, rnya :
string[20];
saldo, rsaldo : real;
begin
patchCrt(Crt.Delay);
clrscr;
writeln('Ingrese N§Cte., Nombre y Saldo
(Esc p/terminar) ');
assign (cliente, 'clientes.txt');
rewrite (cliente);
while tecla <> esc do
begin
readln(nrocte);
readln(nya);
readln(saldo);
regcli.rnrocte:=nrocte;
regcli.rnya:=nya;
regcli.rsaldo:=saldo;
write (cliente, regcli);
tecla:=readkey
end;
close(cliente);
tecla:=readkey
end.
Programacion I – Mgter. Vallejos, Oscar A.
Codificación en Pascal p/lectura e impresión de un Archivo
program lectura_Archivo;
uses NewDelay,Crt,Printer;
const
esc = #27;
type
reg = record
rnrocte : integer;
rnya : string[20];
rsaldo : real;
end;
var
cliente: file of reg;
regcli : reg;
tecla : char;
rnrocte : integer;
rnya : string[20];
rsaldo : real;
procedure leer;
begin
if eof(cliente) then regcli.rnrocte:=999
else
read(cliente, regcli);
end;
begin
patchCrt(Crt.Delay);
clrscr;
assign (cliente, 'clientes.txt');
reset (cliente);
leer;
while regcli.rnrocte <> 999 do
begin
writeln(regcli.rnrocte:5,regcli.rnya:15,
regcli.rsaldo:6:2);
leer;
end;
close(cliente);
tecla:=readkey
end.
Programacion I – Mgter. Vallejos, Oscar A.
Bibliografía
o ALGORITMOS, DATOS Y PROGRAMAS con
aplicaciones en Pascal, Delphi y Visual Da Vinci.
De Guisti. Armando. 2001. editorial: Prentice
Hall. ISBN: 987-9460-64-2. Capitulo 12.
o PROGRAMACIÓN; Castor F. Herrmann,María E.
Valesani.; 2001; Editorial: MOGLIA S.R.L..ISBN:
9874338326. Capitulo 2.

Más contenido relacionado

Similar a 1471744226tema12archivo1pppt.ppt

Similar a 1471744226tema12archivo1pppt.ppt (20)

Ficheros en los lenguajes de programación
Ficheros en los lenguajes de programaciónFicheros en los lenguajes de programación
Ficheros en los lenguajes de programación
 
Ficheros en los lenguajes de programación
Ficheros en los lenguajes de programaciónFicheros en los lenguajes de programación
Ficheros en los lenguajes de programación
 
TODO SOBRE ARCHIVO ANDREA DIAZ
TODO SOBRE ARCHIVO ANDREA DIAZTODO SOBRE ARCHIVO ANDREA DIAZ
TODO SOBRE ARCHIVO ANDREA DIAZ
 
Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)
 
Administracion De Archivos Vi
Administracion De Archivos ViAdministracion De Archivos Vi
Administracion De Archivos Vi
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivos
 
Diseño de archivos
Diseño de archivosDiseño de archivos
Diseño de archivos
 
Tipos de archivos
Tipos de archivosTipos de archivos
Tipos de archivos
 
Guia de aprendizaje sistemas de archivos
Guia de aprendizaje sistemas de archivosGuia de aprendizaje sistemas de archivos
Guia de aprendizaje sistemas de archivos
 
Archivos Y Procesamiento
Archivos Y ProcesamientoArchivos Y Procesamiento
Archivos Y Procesamiento
 
Pia Programacion Equipo 8.pdf
Pia Programacion Equipo 8.pdfPia Programacion Equipo 8.pdf
Pia Programacion Equipo 8.pdf
 
Quasi - Ficheros
Quasi - FicherosQuasi - Ficheros
Quasi - Ficheros
 
informatica3.pdf
informatica3.pdfinformatica3.pdf
informatica3.pdf
 
estructura de datos archivos (3).pptx
estructura  de datos archivos (3).pptxestructura  de datos archivos (3).pptx
estructura de datos archivos (3).pptx
 
Glosario base de datos
Glosario base de datosGlosario base de datos
Glosario base de datos
 
Base de datos pres..
Base de datos pres..Base de datos pres..
Base de datos pres..
 
YENIFER OLIVO.
YENIFER OLIVO.YENIFER OLIVO.
YENIFER OLIVO.
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
S7-P2.pptx
S7-P2.pptxS7-P2.pptx
S7-P2.pptx
 
S7 p2
S7 p2S7 p2
S7 p2
 

Último

BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 

Último (7)

BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 

1471744226tema12archivo1pppt.ppt

  • 1. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Repaso: Archivos. Objetivos. Concepto General. Operaciones. Organización. Acceso. Tema XII: Archivos. Operaciones básicas sobre archivos. Gestión de Archivos. Algoritmos clásicos sobre archivos: modificación, agregado, actualización, corte de control, unión de archivos (merge). Eliminar elementos de un archivo: borrado físico. borrado lógico. Nociones generales sobre bases de datos.
  • 2. Programacion I – Mgter. Vallejos, Oscar A. Objetivo Las estructuras de datos vistas: son definidas en el algoritmo y ocupan memoria RAM, se utilizan en la ejecución y todos los valores contenidos en ellas se pierden, a lo sumo, cuando el algoritmo finaliza. Es necesario disponer de otras estructuras de datos que permita guardar su información en soporte volatil (disco, cinta, cd, etc.) y de esa forma preservarla aunque el programa finalice (estructuras de almacenamiento). Se asocian a un dispostivo de memoria auxiliar permanente.
  • 3. Programacion I – Mgter. Vallejos, Oscar A. Memoria principal y secundaria Estructuras de datos anteriores => utilizan memoria interna => memoria principal (es volátil de acceso aleatorio) Características: a) Limitada en la cantidad disponible b) Es volátil c) Velocidad de acceso elevada Estructuras de datos tipo archivo utilizan memoria secundaria (almacenamiento secundario magnético u óptico) => medios de almacenamiento fuera de la RAM => retienen la información (discos, cintas, cd, etc.).
  • 4. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos (ficheros) Es una colección de registros semejantes, guardados en dispositivos de almacenamientos secundario de la computadora. Es una estructura de datos que guarda en un dispositivo de almacenamiento secundario de una computadora una colección de elementos del mismo tipo. En sintesis, un archivo, es una estructura de datos homogenea. •ARCHIVOS DE DATOS •ARCHIVOS DE PROGRAMA
  • 5. Programacion I – Mgter. Vallejos, Oscar A. Administración de Archivos • Cuando se trabaja con un archivo en almacenamiento secundario y estos pueden almacenar un gran numero de archivos. • Un programa no sabe con exactitud donde residirán los datos (archivo físico). • El programa envía y recibe información desde y hacia el archivo (archivo lógico). • Es necesario que el SO realice ciertas tareas de relación entre ambos.
  • 6. Programacion I – Mgter. Vallejos, Oscar A. Archivos – Estructura de Datos Objetivos (entre otros...) • Almacenamiento permanente • Manipulacion de un gran numero de datos • Independencia de los programas • Residentes en soportes externos Estrutura Archivos = Colección de Registros Registros = Colección de campos (tamaño, longitud,...) Clave  Un campo que identifica al registro
  • 7. Programacion I – Mgter. Vallejos, Oscar A. Manejo de buffers  Memoria intermedia entre un archivo y un programa, donde los datos residen provisoriamente hasta ser almacenados definitivamente en memoria secundaria o donde los datos residen una vez recuperados de dicha memoria secundaria. Ocupan memoria RAM.  El SO es el encargado de manipular los buffers.  Diferentes tiempos de acceso en la memoria principal y memoria secundaria.
  • 8. Programacion I – Mgter. Vallejos, Oscar A. Tipos de Registros Registro Físico: Cantidad de datos que puede transferirse en una operación de I / O a traves del buffer. Registro Lógico: Definido por el programador. Factor de Bloqueo: Numero de Registros Lógicos que puede contener un Registro Físico.
  • 9. Programacion I – Mgter. Vallejos, Oscar A. Jerarquizacion Base de Datos Archivos Registros Campos Sub Campos
  • 10. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Campo es un conjunto de caracteres capaz de suministrar una determinada información referida a un concepto. Al igual que en las variables, al definir un campo hay que indicar claramente sus tres características: Nombre: identifica a ese conjunto de caracteres Tipo: Tipo de caracteres que puede contener (alfabético, entero, etc.-) Tamaño: Cantidad de caracteres que puede contener Por ejemplo, si tenemos que definir al campo número de documento resultaría: •Nombre: documento •Tipo: numérico •Tamaño: 8 enteros Un campo es la entidad lógica más pequeña, consiste en un conjunto de byte que conforman un dato. Un campo es la unidad mínima de información de un registro.
  • 11. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Registro es un conjunto de campos referentes a una entidad en particular y constituyen una unidad para su proceso. Un ejemplo de un registro puede ser la información de un determinado alumno universitario, que contiene los campos: libreta universitaria, apellido y nombre, número de documento, domicilio, fecha de nacimiento, entre otros campos. libreta universitaria Apellido y nombre número de documento Domicilio Fecha de nacimiento
  • 12. Programacion I – Mgter. Vallejos, Oscar A. Clasificacion según su funcion • Maestros: Datos permanentes o históricos. • De Movimientos: Auxiliares. Contienen registros necesarios para realizar actualizaciones a los archivos permanentes. • De Maniobras: Efímeros y auxiliares. Contienen información de registros seleccionados o semi elaborados. • De informes: Contienen datos para ser presentados a los usuarios.
  • 13. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Soporte: A) Secuenciales; B) Direccionables; Un soporte secuencial  Org. secuencial Un soporte direccionable  Distintos tipos de Org. Organización de Archivos: La organización de un archivo define la forma en la que los registros se disponen sobre el soporte de almacenamiento, o también se define la organización como la forma en que se estructuran los datos en un archivo. En general, se consideran tres organizaciones fundamentales: •Organización secuencial •Organización directa o aleatoria (random) •Organización secuencial indexada Obs: En Pascal standar los archivos son de Org. Secuencial Turbo Pascal permite el acceso aleatorio o directo en todos los archivos (excepto en archivos de textos).
  • 14. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Organización secuencial No es mas que una sucesión de registros almacenados en forma consecutiva sobre un soporte externo. Los registros están ubicados físicamente en una secuencia usualmente fijada por uno o más campos de control contenidos dentro de cada registro, en forma ascendente o descendente. Esta organización tiene el último registro en particular, contiene una marca (en general un asterisco) de fin de archivo, la cual se detecta con funciones tipo EOF (end of file) o FDA (Fin de Archivo). Registro 1 Registro 2 Registro 3 ..... Registro n-1 Registro n EOF
  • 15. Programacion I – Mgter. Vallejos, Oscar A. Organización Directa Los datos se colocan y se acceden aleatoriamente mediante su posición, es decir, indicando el lugar relativo que ocupan dentro del conjunto de posiciones posibles. En esta organización se pueden leer y escribir registros, en cualquier orden y en cualquier lugar. Inconvenientes: a) Establecer la relación entre la posición que ocupa un registro y su contenido; b) Puede desaprovecharse parte del espacio destinado al archivo. Ventaja: Rapidez de acceso a un registro cualquiera.
  • 16. Programacion I – Mgter. Vallejos, Oscar A. Organización Indexada Un archivo con esta organización consta de tres áreas:  Área de índices  Área primaria  Área de excedentes (overflow) Ventaja: a) Rápido acceso, y, además, el sistema se encarga de relacionar la posición b) de cada registro con su contenido por medio del área de índices. b) Gestiona las áreas de índices y excedentes. Desventajas: a) necesidad de espacio adicional para el área de índices. b) el desaprovechamiento de espacio que resulta al quedar huecos intermedios libres después de sucesivas actualizaciones.
  • 17. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Organización secuencial: Archivos de Textos Son casos particulares de los archivos con organización secuencial. Constan de una serie de lineas, cada una de las cuales se encuentra constituida por una serie de caracteres, separadas por una marca de fin de linea la cual es posible detectar. Se puede utilizar la instruccion: Read (id-archivo,var) ….para leer caracter a caracter Redln (id_archivo, var)… para leer linea a linea Las instrucciones Write y Read no solo escriben o leen los datos si no tambien transformacion de los valores. Ej: valores numericos se convierten en estrng de caracteres antes de escribirse y viceversa.
  • 18. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Métodos de acceso El modo de acceso es la manera de acceder a los registros de un archivo para leer información o para grabar información nueva en el mismo. Existen fundamentalmente dos formas de acceso: Acceso secuencial Se accede a los registros según secuencia física, en el orden es que están escritos. Dicho de otro modo, para acceder al registro N hay que pasar previamente por los N-1 registros anteriores. Acceso Directo Permite el acceso a un registro determinado sin tener que pasar previamente por los registros anteriores.
  • 19. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Operaciones sobre archivos Es necesario considerar las operaciones que se pueden realizar con los mismos. Estas son: Creación: Definicion del archivo Apertura: Comunicacion del archivo logico con el fisico. Cierre: Cerrar la conexion. Lectura / Consulta: Acceder al archivo para ver su contenido. Fin de Archivo: Detecta el final del archivo. Destrucción: Borra el Archivo. Reorganizacion: Optimiza la estructura. Fusion: Reune varios archivos en uno solo. Actualizacion – Alta: Adicion de registros. Act. - Baja: Eliminacion o borrado logico de registros. Act. – Modificacion: Altera la informacion del contenido.
  • 20. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Fin de Archivo Toda instrucción de ingreso de datos, ya sea desde teclado o desde un dispositivo magnético, requiere una condición de fin de ingreso de los datos, con el objeto de determinar cuando se han terminado los registros de un archivo o cuando ya no se desean ingresar mas datos desde el teclado. Esta condición la denominamos fin de archivo conocida como EOF (end of file). Comenzar NOTA = 11 No Si Parar Ingresar NOTA Comenzar EOF No Si Parar Leer {lista de campos}
  • 21. Programacion I – Mgter. Vallejos, Oscar A. Mantenimiento de Archivos Requerimiento: a) Que este creado b) Abierto en el modo adecuado Operaciones que se permiten: Creacion: Se realiza la primera vez. (Basta con..abrir con Rewrite y luego escribir los datos con Write) Altas: Añadir nuevos registros al final del archivo (abrir con Append y luego escribir los datos con Write) Consulta total: Obligatoriamente en modo secuencial. (Basta con..abrir con Reset, leer el registro con ReadLn (a) y luego realizar el proceso, calcular, imprimir, etc.) Consulta parcial (busqueda): Obligatoriamente en modo secuencial. (Basta con..abrir con Reset, leer el registro con ReadLn (a, clave) y luego mostrar). Obs: En todos los casos es necesario el comando Assign y Close
  • 22. Programacion I – Mgter. Vallejos, Oscar A. Mantenimiento de Archivos Baja: Logica (marca o flag..) o Fisica. Ambos utilizan archivo auxiliar. Modificacion: Similar a la baja logica. Borrar. ( ERASE) Este procedimiento nos permite borrar un archivo, el archivo a borrar no debe estar abierto. Para borrar un archivo se debe realizar lo siguiente : 1. Asignar el archivo externo a una variable de archivo. 2. Llamar al procedimiento erase Renombrar (cambia el nombre) un archivo externo. Para renombrar un archivo se debe hacer los siguiente : 1. Asignar un archivo a la variable archivo 2. Llamar al procedimiento rename Seek. Sitúa el puntero de posición del archivo en el número de registro correspondiente.
  • 23. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Pascal Declaración Type <tipo de dato>=record <nombre de campo1>: tipo1; <nombre de campo2>: tipo2; <nombre de campo3>: tipo3; …. End; Var <Id archivo>: text {archivo secuencia de <tipo de dato>} <nombre de variable>:<tipo de dato> {variable para leer los registros del archivo}
  • 24. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Pascal Instrucciones Assign (<id_archivo>, <nombre_físico>) Establece un enlace entre la variable tipo de archivo y el nombre del archivo en el disco. Rewrite (<id_archivo>) Crea y abre el archivo para escritura. Append(<id_archivo>) Abre el archivo para operaciones de escritura. Coloca el puntero al final del archivo. Reset (<id_archivo>) Abre el archivo para operaciones de lectura. Coloca el puntero al inicio del archivo.
  • 25. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Pascal Instrucciones WriteLn o Write(<id_archivo>, <lista de variables>) Cada vez que se escribe en el archivo avanza el puntero de datos. ReadLn o Read(<id_archivo>, <lista de variables>) Con cada lectura avanza el puntero de datos. Close(<id_archivo>) Cierre del archivo
  • 26. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Pascal Funcion EOF EOF(<id_archivo> Detecta la marca de fin de archivo.
  • 27. Programacion I – Mgter. Vallejos, Oscar A. Estructura de Datos: Archivos Pascal Ejemplo Declaración Type Datos_personales = record NC: integer(3); AYN: string (30); T: integer (3); End; Arch = text; Var F: arch; Competidor: datos_personales; NC AYN T
  • 28. Programacion I – Mgter. Vallejos, Oscar A. Codificación en Pascal p/generar un Archivo program genero_archivo; uses NewDelay,Crt,Printer; const esc = #27; type reg = record rnrocte : integer; rnya : string[20]; rsaldo : real; end; var cliente: file of reg; regcli : reg; tecla : char; nrocte, rnrocte : integer; nya, rnya : string[20]; saldo, rsaldo : real; begin patchCrt(Crt.Delay); clrscr; writeln('Ingrese N§Cte., Nombre y Saldo (Esc p/terminar) '); assign (cliente, 'clientes.txt'); rewrite (cliente); while tecla <> esc do begin readln(nrocte); readln(nya); readln(saldo); regcli.rnrocte:=nrocte; regcli.rnya:=nya; regcli.rsaldo:=saldo; write (cliente, regcli); tecla:=readkey end; close(cliente); tecla:=readkey end.
  • 29. Programacion I – Mgter. Vallejos, Oscar A. Codificación en Pascal p/lectura e impresión de un Archivo program lectura_Archivo; uses NewDelay,Crt,Printer; const esc = #27; type reg = record rnrocte : integer; rnya : string[20]; rsaldo : real; end; var cliente: file of reg; regcli : reg; tecla : char; rnrocte : integer; rnya : string[20]; rsaldo : real; procedure leer; begin if eof(cliente) then regcli.rnrocte:=999 else read(cliente, regcli); end; begin patchCrt(Crt.Delay); clrscr; assign (cliente, 'clientes.txt'); reset (cliente); leer; while regcli.rnrocte <> 999 do begin writeln(regcli.rnrocte:5,regcli.rnya:15, regcli.rsaldo:6:2); leer; end; close(cliente); tecla:=readkey end.
  • 30. Programacion I – Mgter. Vallejos, Oscar A. Bibliografía o ALGORITMOS, DATOS Y PROGRAMAS con aplicaciones en Pascal, Delphi y Visual Da Vinci. De Guisti. Armando. 2001. editorial: Prentice Hall. ISBN: 987-9460-64-2. Capitulo 12. o PROGRAMACIÓN; Castor F. Herrmann,María E. Valesani.; 2001; Editorial: MOGLIA S.R.L..ISBN: 9874338326. Capitulo 2.