Organización de Archivos en Lenguaje C++

September 13, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Organización de Archivos en Lenguaje C++...

Description

 

UNIVERSIDAD ANTONIO NARIÑO www.uan.edu.co

 Resumen—  Mediante  Mediante el desarrollo de este taller conoceremos y aprenderemos sobre la organización de archivos en lenguaje C+ +.  Palabras Clave— archivos, registros, estructura, organizació organización, n, datos, secuencial, indexada. Abstract —   —   By developing this workshop we will know and learn about the organization of files in C++ language.  Keywords— files, records, records, struct, organization, organization, data, data, sequential, sequential, indexed.

I. I NTRODUCCIÓN  El pr proce ocesa sami mient entoo de la inf infor orma maci ción ón es fu funda ndamen menta tall pa para ra  planificar  planifi car cualquier cualquier actividad del hombre hombre de hoy, que va desde conocer el tiempo que puede hacer el fin de semana, las últimas cotizaciones en la bolsa o disponer en todo momento de una info inform rmac ació iónn ac actu tual aliz izad adaa de lo loss da dato toss de un unaa empr empres esa, a, en ente tend ndie iend ndoo co como mo “e “emp mpre resa sa”” cu cual alqu quie ierr or orga gani niza zaci ción ón comerc com ercial, ial, científica científica,, técnica técnica o de otr otraa clase, clase, con un nivel nivel razonable de autosuficiencia. Una consecuencia de todo esto es la gran cantidad de datos que es necesario manejar en cualquier actividad de la vida, sobre todo todo en el mundo empresari empresarial. al. Al aumentar aumentar el volumen volumen de datos a manejar, también debe aumentar la rapidez con que se procesan procesan dichos dichos datos. datos. Cualquier empresa mediana, en la actualidad, maneja miles de millones, o incluso billones de elementos individuales de datos. Las Las compu computa doras asdichos ha hann ve venid nidoo los a re revol voluc ucion ionar ar estructurarse la fo form rmaa de almacenar ytador tratar datos, cuales deben en fo form rmaa adecua adecuada da para para poder poder re repre presen senta tarse rse de dentr ntroo de la computadora y poder ser procesados en forma adecuada. Cuando hablamos de archivos, habitualmente se utilizan cuatro términos que debemos definir claramente: Campo, Registro, Archivo y Base de datos. Se puede decir decir que estos términos términos forman una estructura de datos agrupados y relacionados de alguna manera en particular donde uno contiene al otro y que nos facilitan la manera de almacenarlos y recuperarlos

un unaa fech fechaa o un va valo lorr le leíd ídoo po porr un se sens nsor or.. Lo má máss importante de un campo es su longitud (que puede ser fija o variable) y el tipo de datos que contenga (ya sea una cadena ASCII o un dígito decimal). Registro: Es el conjunto completo de datos relacionados pertenecientes pertenecientes a una entrada. Por ejemplo. Un almac alm acén én puede puede ret retene enerr los datos de sus producto productoss en registros de acuerdo al formato mostrado en la Fig. 1.

Fig 1. Formato del registro de productos.

El registro de la Fig. 1 puede ser declarado globalmente (p (por or en enccim imaa de la fun uncció iónn main) en Leng Lengua uaje je C+ C++ + utilizando struct  (Fig  (Fig 2).

Fig 2. Declaración del registro de productos.

Archivo: En términos computacionales es una colección de datos que tiene un nombre y se guardan en dispositi dispo sitivos vos de almacenam almacenamient ientoo secundari secundario, o, los cuales cuales  pueden ser magnéticos, ópticos, electrónicos, etc. Por  ejemplo. Diskettes, discos duros, CD´s, ZIP drives, flash drives, memory sticks, etc. Por ejemplo. La Fig. 3 muestra la estructura de un archivo con registros homogéneos de productos (con la misma estructura) declarados previamente previamente en la Fig. 2.

II. ASPECTOS TEÓRICOS Campo: Un Campo es un espacio definido en la me memo mori riaa de la co comp mput utad ador oraa o en al algú gúnn me medi dioo de almacenamiento dispuesto para contener un solo dato de un solo solo un tipo. tipvalor o. único, Como Comocomo ejemp ejemplo: un camp campo o empleado, indiv individu idual al contiene ello: apellido de un Estudiantes de ingeniería industrial y ambiental. Ing. Carlos Henry López Bermúdez, Profesor de la clase.

Fig 3. Formato del registro de productos.

 

Ca Camp mpoo se secu cuen enci cial al:: Un camp campoo secue secuenc ncia iall es aqué aquéll que  permite establecer una colección de continuidad entre los registros de un archivo. El campo secuencial se muestra en la Fig. Fig. 4, dond dondee la cl clav avee de dell de depa part rtam amen ento to de adscripción, se encadena con la descripción correspondiente que se encuentra en un registro en otro archivo.

Fig 5. Ejemplo de campo llave, campo, registro y archivo.

Fig 4. Ejemplo de campo secuencial.

Llav Llave: e: Es aq aque uell ca camp mpoo que que pe perm rmit itee id iden enti tifi fica carr en fo form rmaa unívoca unívoca a un un registr registro. o. General Generalment mentee se design designará aránn como campos llave, aquellos que no contienen datos repetidos. Si el sist sisteema de ar arch chiv ivos os no po pose seee ca camp mpos os co conn esa esas ca cara ract cterí eríst stica icas, s, deber deberán án util utiliz izar arse se ll llave avess int inter erme media diass o escalonadas. escalon adas. Y en el último último de de los casos, casos, se unen dos o más campos para generar la llave.

Base de datos: Una ba base de de datos es un un conjunto ddee varios archivos de datos independientes, que están ligados y relacionados de alguna forma, donde se elimina parcial o totalmente cualquier redundancia entre los mismos. Las  bases de datos generalme generalmente nte están están mecanizadas mecanizadas en una computadora por un software llamado DBMS (Database Management System). Transacción: Transacc ión: Una transacción transacción consiste consiste en agregar, agregar, eliminar  eliminar  o modificar un registro de datos en algún archivo en específico. Las transacciones son la forma más común de actualizar los datos de un archivo o de toda una base de datos.

Este método presenta listas de objetos (o individuos) que se van reduciendo conforme se introducen los valores para cada una de las las llaves escalonadas. escalonadas. El proceso proceso se da por concluido al hacer contacto visual con el objeto buscado o hasta reducir la lista de tal forma que se determina la inexistencia del objeto. Al manejar algunos campos como llaves, éstos pueden ser de dos tipos: 



Llave primaria: Es el campo llave principal de un archivo multillave. En un archivo secuencial indexado con llaves alternas representa representa el campo por medio del cual el acceso directo y secuencial es manejado. Llave secundaria: Es, en un archivo multillave (de varios campos llave), cualquier llave exceptuando la  primaria.  primari a.

Ar Arch chiv ivo: o: Es un co conj njun unto to de re regi gist stro ross sim simil ilar ares es.. Los Los usuarios y las aplicaciones se refieren a él por un nombre que que es únic únicoo y que pued puedee crea crears rsee y bo borr rrar arse se.. La Lass restricciones al control de acceso suelen aplicarse a los archivos. Es decir, en un sistema compartido, el acceso de los los us usuar uario ioss y los los pr progr ogram amas as se ga gara ranti ntiza za o de denie niega ga a archivos completos, en otros casos se aplica a los registros e incluso a ciertos campos. Archivoss de texto Archivo texto [1] [1]:: Son aquellos aquellos que pueden pueden contene contener  r  cualq ualqui uier er cl claase de dato datoss y de ta tall ma mane nerra qu quee so sonn “entendibles” la gente. Los datos en un en archivo de texto se almacenanpor usando el código ASCII, el cual cada

  Fig 6. Ejemplo de una base de datos trivial. trivial.

 

carácter es representado por un simple byte. Debido a que los archivos de texto utilizan el código ASCII, se pueden desplegar o imprimir. En este tipo de archivos, todos sus datos se almacenan como cadenas de caracteres, es decir, los números se almacenan con su representación ASCII y no su representación numérica, por lo tanto, no se pueden realizar operaciones matemáticas directamente con ellos. P. ejem. Si se guarda el dato 3.141592 en un archivo de texto, se almacena como “3.141592” y nótese que... 3.141592 ≠ 3.141592

Archivos binarios binarios [[2]: 2]: Este tipo de archivos archivos almacenan los datos numéricos con su representación binaria. Pueden ser  archivos que contienen instrucciones en lenguaje máquina listas para ser ejecutadas. Por ejemplo, cuando escribimos un pro progra grama ma en un lengu lenguaje aje en pa parti rticu cula larr (c (com omoo C++, 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 compilación y ejecución nuestro programa lo trasladamos a un programa ejecuta ejecutable ble (en lenguaje lenguaje máquina) máquina),, que es dir direct ectamen amente te entendido entendi do por la computadora y se crea un archivo binario. En este tipo de archivos también se pueden almacenar  diferentes tipos de datos incluyendo datos numéricos; sin embargo, cabe destacar que los datos numéricos se graban con su representación binaria (no con su representación ASCII), tal medio razón, de cuando sed espliegan conoperativo, un editor  de textospor o por comandos del sistema apar aparece ecenn ca cara ract ctere eress ra raro ross que no se in inte terp rpre retan tan.. Por  ejemplo. Si se guarda el dato 27 en un archivo binario, se almacena como 00001111 y no como “27”. III.

ASPECTOS EXPERIMENTALES

Declaración del alias del archivo:

Para realizar programas de manejo de archivos en Lenguaje C++ se requiere el encabezado “Standard I/O” y se necesita incluirlo de la sig. forma: #include

Además, es necesario declarar una variable de tipo  FILE que opere como el apuntador a la estructura del archivo (alias), esto se logra con la siguiente línea:

FILE *alias;

La función fopen() y modos de apertura de archivos:

Se usa la función fopen para abrir un archivo, determinar el modo modo de ap aper ertu tura ra y es esta tabl blec ecer er la ví víaa de co comu muni nica caci ción ón mediante su alias correspondiente. Además, determinar el tipo de contenido del archivo (texto o binario). Esta función tiene dos argumentos: el nombre del archivo y su modo. Fig 7. Modos de apertura para archivos de textos y binarios.

Fig 8. La función fopen.

Validar la apertura de un archivo:

Algunas funciones requieren la existencia del archivo para realizar operaciones, por ello es necesario verificar que cuando se intenta abrir un archivo haya tenido éxito la operación. Si un archivo no se puede abrir, la función fopen devuelve el valor de 0 (cero), definido como NULL en stdio.h. La Fig. 9 muestra un ejemplo de la manera de detectar la apertura de un archivo. Fig 9. Validar la apertura de un archivo.

 

Archivos secuenciales:

En los arc archiv hivos os de dat datos os con organi organizac zación ión secuen secuencia ciall los registros de datos se graban en el archivo uno detrás de otro, sin dejar dejar huecos. La grabación grabación de dichos registros registros se lleva a cabo cabo exac exacta tame ment ntee en el mi mism smoo or orde denn en qu quee fu fuer eron on introducidos por el capturista y tienen la característica que existe un campo en cada registro que es único (campo llave) y que se utiliza para identificar identificar cada registro. registro. Dicha forma forma de almacenar los registros en organización secuencial se puede apreciar en la Fig. 10.

ar arch chiv ivoo qu quee se mues muestr traa en la Fi Fig. g. 11 11,, di dich choo arch archiv ivoo co corr rres espo ponde nderá rá al área área de da dato toss de dell arch archiv ivoo secu secuen enci cial al--

indexado.

Fig 12. Área de datos de un archivo secuencial-indexado. Fig 10. Registros grabados en forma secuencial (uno tras de otro).

En estos archivos, archivos, la informac información ión sólo puede leerse desde el inicio del archivo y escribirse después del último registro que existe en el archivo.

A partir del área de datos del ejemplo de la Fig. 12, se crea el ár área ea de índice índicess en donde donde se maneja manejará rá una estructu estructura ra del registro que contenga contenga exclusivamente dos campos: El campo lla llave ve (cl (clave ave)) y la dir direcc ección ión de in inici icioo (ubica (ubicació ción) n) de cada cada registro. La estructura estructura del registro del área área de índices queda queda así:

Estructura:

 Normalmente cada registro tiene una estructura semejante, la cual está compuesta por una cantidad finita de campos y todos ellos están relacionados entre sí y hacen referencia a una unidad uni dad.. La estruc estructur turaa de un regist registro ro ti tiene ene genera generalme lmente nte campos distinto tipo y unoúnica de ellos denomina campo llave paradeidentificar en forma a cadaseregistro.

Fig 11. Estructura del registro de datos.

Fig 13. Estructura del registro del área de datos.

Paraa cualqu Par cualquier ier proces procesoo de alt altas, as, baj bajas, as, mod modifi ificac cacion iones, es, consultas o reporte es necesario utilizar el área de índice para la búsqueda del registro solicitado y el área de datos para tomar toda la información información del registro. Es decir, que los dos archivos unidos son considerados para realizar los accesos en forma secuencial-indexado secuencial-indexado tal como se aprecia en la Fig 14.

Archivos Secuencial-Indexados:

Un archivo secuencial-indexado proporciona la combinación de tipos de acceso que manejan un archivo secuencial y un archivo directo. Esta organización está diseñada para utilizar la combinación de la organi organizac zación ión dir direct ectaa y la secuen secuencia cial, l, obteni obteniend endoo la ventaja de poder acceder a los registros en forma secuencial y relativamente relativamen te de manera directa. Como Como se pude pude ap apre reci ciar ar la or orga gani niza zaci ción ón de ar arch chiv ivos os secuenciales-indexados es efectiva para satisfacer la necesidad secuenciales-indexados tanto de acceder a los archivos en forma secuencial como de forma directa mediante algún valor del campo llave. Estructura:

Para poder estructurar esta organización es necesario construir  el área de índices a partir de un archivo organizado en forma secuencial y basándonos en la disposición física de los datos almacenados. Para Para co cons nstr trui uirr el ár área ea de dell ín índi dice ce,, se to toma ma un ar arch chiv ivoo organizado secuencial para área de datos. en datos. Porforma ejemplo ejemplo, , imagine imaginemos mosconsiderarlo que que se va va acomo tomar tomar el el

Fig 14. El área de datos y el área de índices permiten la organización secuencial-indexada.

El área de índices siempre deberá conservarse ordenado por el campo llave, de forma que la búsqueda pueda ser lo más rápida posible. posible. La función del área de índices índices es análoga análoga a la de dell ín índi dice ce de este este li libr bro: o: faci facili lita tarr la bú búsq sque ueda da de un unaa determinada palabra o tema. Considerando como área de datos la Fig. 12, el área de índices queda tal y como se muestra en la Fig. 15.

 

Fig 16. Estructura de un archivo directo.

IV.

CONCLUSIONES

Al finalizar la investigación de este taller podemos concluir  que: 

Fig 15. El área de datos y el área de índice permiten la organización



Archivos directos: 

Un arc archiv hivoo organi organizad zadoo en forma forma di direc recta ta consis consiste te en una colección de registros de longitud fija almacenados uno al lado del otr otroo en un dis dispos posit itivo ivo de almace almacenam namien iento to de acceso acceso dire direct ctoo (dir (direc ectt – Ac Acce cess ss stor storag agee de devi vice ce,, DASD DASD). ). El almacenamiento de este tipo de archivos se restringe a los DASD, tales como discos y tambores, porque el acceso a registros se hace generalmente en orden aleatorio. Cada registro en un archivo de organización en forma directa se puede referir por medio de un número -entero- de dirección, el cual indica su distancia o desplazamiento desde el origen del archivo archivo.. Al primer primer registr registroo en un archivo archivo relativo relativo se le asigna el valor 1, 2 al siguiente y así sucesivamente. sucesivamente. De este modo, mod o, la direcci dirección ón re relat lativa iva de un valor entero entero refleja refleja su  posición respecto al primer registro del archivo. El acceso aleatorio de un registro en un archivo de organización relativa se hace vía su número relativo de registro o bien su llave. Un arc archiv hivoo de organi organiza zació ciónn dir direct ectaa puede puede cre crears arsee con un  programa en un lenguaje de alto nivel si es que el método de acceso del sistema operativo central es capaz de manejar esta organización, y si el compilador del lenguaje de programación soporta dicho método de acceso.

 

Un archivo siempre está almacenado en un soporte externo a la memoria central. Existe independencia de las informaciones respecto de los programas. Todo Todo prog progra rama ma de trat tratam amie ient ntoo in inte terc rcam ambi biaa información con el archivo y la unidad básica de entrada/salida entrada/sali da es el registro. La información almacenada es permanente. En un momento dado, los datos extraídos por el archivo son los de un registro y no los de un archivo completo. V.

EFERENCIAS R EFERENCIAS

Los ejemplos enumerados en la sección de referencias de este documento incluye: - do docs cs.m .mic icro roso soft ft.c .com om [1] - es.wik .wikiiped ediia.or .org [2]  

-

VI. BIBLIOGRAFÍA Intr Introd oduc ucci ción ón a la la inge ingeni nier ería ía de de sist sistem emas as computacionaless y al diseño orientado a objetos. computacionale Autor. Bruno López Takeyas Progra Programac mación ión orient orientada ada a objet objetos os con con C++. C++. Aut Autor. or. Javier Ceballos Francisco.

Para la elaboración de esta guía, se tuvo en cuenta: 1.  Normas IEEE y formatos descargados de http://www.ieee.org/conferences_events/conferences/publishing/templates.html 2. Artículo como Informe de Investigación modelo IEEE descargados de http://www.usc.edu.co/ingenieria/files/MODELO_PAPER_IEEE_INGENIUM_1.pdf  http://www.itsa.edu.co/ciit2010/Formato_Articulos_IEEE.pdf http://www.docentes.unal.e http://www.docentes.unal.e du.co/mfromerol/docs/Laboratorio_Circuitos/FormatoIEEE.do

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF