acceso secuencial

Upload: andres-cariaga-vallejos

Post on 06-Jul-2015

1.725 views

Category:

Documents


0 download

TRANSCRIPT

Acceso secuencialDe Wikipedia, la enciclopedia libre Saltar a navegacin, bsqueda Este artculo o seccin necesita referencias que aparezcan en una publicacin acreditada, como revistas especializadas, monografas, prensa diaria o pginas de Internet fidedignas.Puedes aadirlas as o avisar al autor principal del artculo en su pgina de discusin pegando: {{subst:Aviso referencias|Acceso secuencial}} ~~~~

En ciencias de la computacin, el acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial(un registro a la vez). El acceso secuencial es a veces la nica forma de acceder a los datos, por ejemplo en una cinta de casete. Tambin puede ser el mtodo de acceso elegido, para simplemente procesar una secuencia de datos en orden. En las estructuras de datos, se dice que una estructura tiene acceso secuencial si solo podemos visitar los valores contenidos en un determinado orden. El ejemplo trivial, es la lista enlazada.DEFINICION DE ACCESO SECUENCIAL Lectura o escritura de datos en forma secuencial, o sea, uno tras otro. Contrario al acceso aleatorio, donde es posible leer cualquier posicin sin tener que pasar por las que estn detrs.

ArchivosEnviado por lcamachog Anuncios Google Curso de Programacin Diseo y gestin de aplicaciones orientadas a objetos. Infrmate!www.seas.es

Back Tones de Tigo Activa los Back Tones que quieras y contagia tu msicawww.tigomusica.com.bo

Embedded Tools & Consult RTOS,Compiler,Debugger,JTAG Debugger,Flasher,Starter Kits www.innisintl.com

INDICE: QUE SON ARCHIVOS INTRODUCCIN A LOS ARCHIVOS

CARACTERSTICAS CLASIFICACION TIPOS DE ARCHIVOS SEGN SU FUNCION SEGN SUS ELEMENTOS ACCESO A LOS ARCHIVOS TIPOS DE ACCESO A LOS ARCHIVOS OPERACIONES GENERALES QUE SE REALIZAN SOBRE UN ARCHIVO. ORGANIZACIN DE LOS ARCHIVOS. ENFOQUES GENERALES PARA LA ORGANIZACIN DE ARCHIVOS ARCHIVOS SECUENCIALES ARCHIVOS DE TEXTO ARCHIVOS INDIZADOS ARCHIVOS DISPERSOS. MEDIDAS DE UTILIZACIN DE LOS ARCHIVOS DEFINICIONES. BIBLIOGRAFIA 1. QUE SON ARCHIVOS. Los archivos tambin denominados ficheros (file); es una coleccin de informacin (datos relacionados entre s), localizada o almacenada como una unidad en alguna parte de la computadora. Los archivos son el conjunto organizado de informaciones del mismo tipo, que pueden utilizarse en un mismo tratamiento; como soporte material de estas informaciones. 1.1. - INTRODUCCIN A LOS ARCHIVOS. Los archivos como coleccin de datos sirve para la entrada y salida a la computadora y son manejados con programas. Los archivos pueden ser contrastados con Arrays y registros; Lo que resulta dinmico y por esto en un registro se deben

especificar los campos, l nmero de elementos de un arrays (o arreglo), el nmero de caracteres en una cadena; por esto se denotan como "Estructuras Estticas". En los archivos no se requiere de un tamao predeterminado; esto significa que se pueden hacer archivos de datos ms grandes o pequeos, segn se necesiten. Cada archivo es referenciado por su identificador (su nombre.). 1.2. - CARACTERSTICAS DE LOS ARCHIVOS Las principales caractersticas de esta estructura son: Independencia de las informaciones respecto de los programas La informacin almacenada es permanente Un archivo puede ser accedido por distintos programas en distintos momentos Gran capacidad de almacenamiento. 1.3. - CLASIFICACION DE LOS ARCHIVOS Los archivos se clasifican segn su uso en tres grupos: Permanentes o Maestros: Estos contienen informacin que varia poco. En algunos casos es preciso actualizarlos peridicamente. De Movimientos Se cercan para actualizar los archivos maestros. Sus registros son de tres tipos: alta, bajas y modificaciones. De Maniobra o Trabajo. Tienen una vida limitada, normalmente menor que la duracin de la ejecucin de un programa. Su utilizan como auxiliares de los anteriores. 1.4. - TIPOS DE ARCHIVOS

Los elementos de un archivo pueden ser de cualquier tipo, simples o estructurados o segn su funcin. 1.4.1. - SEGN SU FUNCION. Se define por: a.- Archivos Permanentes: Son aquellos cuyo registros sufren pocas o ninguna variacin a lo largo del tiempo, se dividen en: Constantes: Estn formados por registros que contienen campos fijos y campos de baja frecuencia de variacin en el tiempo. De Situacin: Son los que en cada momento contienen informacin actualizada. Histricos: Contienen informacin acumulada a lo largo del tiempo de archivos que han sufridos procesos de actualizacin o bien acumulan datos de variacin peridica en el tiempo. b.- Archivos de Movimiento Son aquellos que se utilizan conjuntamente con los maestros (constantes), y contienen algn campo comn en sus registros con aquellos, para el procesamiento de las modificaciones experimentados por los mismos. c.- Archivo de Maniobra o Transitorio Son los archivos creados auxiliares creados durante la ejecucin del programa y borrados habitualmente al terminar el mismo. 1.4.2. SEGN SUS ELEMENTOS. Los principales archivos de este tipo son: Archivo de Entrada: Una coleccin de datos localizados en un dispositivo de entrada.

Archivo de Salida: Una coleccin de informacin visualizada por la computadora. Constantes: estn formados por registros que contienen campos fijos y campos de baja frecuencia de variacin en el tiempo. De Situacin: son los que en cada momento contienen informacin actualizada. Histricos: Contienen informacin acumulada a lo largo del tiempo de archivos que han sufrido procesos de actualizacin, o bien acumulan datos de variacin peridica en el tiempo. Archivos de Movimiento o Transacciones: Son aquellos que se utilizan conjuntamente con los maestros (constantes), y contienen algn campo comn en sus registros con aquellos, para el procesamiento de las modificaciones experimentados por los mismos. Archivos de Maniobra o Transitorios: Son los archivos auxiliares creados durante la ejecucin del programa y borrados habitualmente al terminar el mismo. - SEGN SUS ELEMENTOS Los principales archivos de este tipo son: Archivo de Entrada, una coleccin de datos localizada en un dispositivo de entrada. Archivo de Salida, una coleccin de informacin visualizada por la computadora. Archivo de Programa, un programa codificado en un lenguaje especifico y localizado o almacenado en un dispositivo de almacenamiento. Archivo de Texto, una coleccin de caracteres almacenados como una unidad en un dispositivo de almacenamiento. 2. - ACCESO A LOS ARCHIVOS

Se refiere al mtodo utilizado para acceder a los registros de un archivo prescindiendo de su organizacin. Existen distintas formas de acceder a los datos: Secuenciales; los registros se leen desde el principio hasta el final del archivo, de tal forma que para leer un registro se leen todos los que preceden. Directo; cada registro puede leerse / escribirse de forma directa solo con expresar su direccin en el fichero por l numero relativo del registro o por transformaciones de la clave de registro en l numero relativo del registro a acceder. Por ndice; se accede indirectamente a los registros por su clave, mediante consulta secuenciales a una tabla que contiene la clave y la direccin relativa de cada registro, y posterior acceso directo al registro. Dinmico; es cuando se accede a los archivos en cualquier de los modos anteriormente citados. La eleccin del mtodo esta directamente relacionada con la estructura de los registros del archivo y del soporte utilizado. 2.1. - TIPOS DE ACCESOS Acceso Secuencial. Exige el tratamiento de elemento, para esto es necesario una exploracin secuencial comenzando desde el primer momento (Pascal permite este acceso) Secuenciales: archivo de texto que debe ser ledo del principio hasta el final. Acceso Directo. Permite procesar o acceder a un elemento determinado y referencia directamente por su posicin en el soporte de almacenamiento (Turbo Pascal permite este acceso. Aleatorios: es un archivo con registros de un mismo largo. Un programa puede accesar directamente cualquier registro sin tener que leer los registros previos.

Binarios: es un archivo que lee byte por byte sin asumir ninguna estructura. Los archivos Binarios no son un nuevo tipo de archivo, pero si una nueva forma de manipular cualquier tipo de archivo. Las tcnicas de archivo binarios permiten leer o cambiar cualquier byte de un archivo. Son herramientas extremadamente potentes, pero como toda herramienta potente debe manejarse con cuidado Entre otras caractersticas, a las tcnicas de archivo binario no les preocupa los caracteres EOF intercalados (Control+Z = Chr$(26)) que pueda tener un archivo. Ejemplo Open NombreArchivo for Binary as #NumeroArchivo. Instrucciones para manejar archivos OPEN: reserva un espacio del buffer para la data que mover entre el programa y los archivos. La estructura es: OPEN filespec FOR {Append|Binary|Input|Outuput| Random} As #filenumber Por ejemplo: OPEN "C:\Windows\AddrBook.ini" FOR Input As #1 Filespec: Es la localizacin de archivo en el que se trabajar, incluyendo usualmente el drive y path. "C:\Windows\AddrBook.ini" {Append| Binary| Input| Outuput| Random} El programador tiene que seleccionar uno. Binary y Random se utiliza para archivos binarios y aleatorios. Append, Input y Output son usados con archivos secuenciales. Un archivo secuencial no puede ser abierto para leer y escribir simultaneamente. Output es usado para escribir en el archivo. Input es usado para leer del archivo. Append es usado para colocar data al final de un archivo exitente.

#filenumber: es necesario asignar un nmero al archivo. El nmero puede estar en el rango de #1 a #511 y es usado por Visual Basic para identificar el archivo. CLOSE: para cerrar un archivo. La estructura es: CLOSE #filenumber Por ejemplo: CLOSE #1 WRITE: envia data del programa al archivo secuencial. La estructura es: WRITE #filenumber, [OutputList] Por ejemplo: WRITE #1, UserName, UserCompany, SerialNumber WRITE es la operacin opuesta al INPUT. Las expresiones en el OutputList son separadas por comas. WRITE inserta comillas y comas a la data que envia al archivo. INPUT: lee data del archivo. La estructura es: INPUT #filenumber, InputList Por ejemplo: INPUT #1, UserName, UserCompany, SerialNumber Declaracin y asignacin de archivos La declaracin de un archivo con tipo se efecta con la ayuda de las palabras reservadas file of. El procedimiento de asignacin es idntico al utilizado anteriormente. Ejemplo: Type datos = record

clave : integer; nombre : string[30]; puesto : string[20]; sueldo : real; estado : boolean; {true activo,false baja lgica} end; Var archivo:file of datos; begin Assign(archivo,'empleado.dat'); SISTEMA DE MANEJO DE ARCHIVOS. Tiene las siguientes funciones: Controla los datos en almacenamiento secundario [ ] Proporciona al usuario una abstraccin de cmo se manipulan los datos internamente. [ ] Proporciona independencia de E/S con los dispositivos [ ] Soporte de comparticin, proteccin, recuperacin de archivos y posibles cadas del sistema. [ ] Transmisin de datos de memoria principal a secundaria.[ ] Los archivos de una empresa pueden almacenarse en diferentes dispositivos. Todos los archivos se pueden almacenar por medio de directorios, que no son otra cosa ms que tablas de smbolos de archivo, los directorios se pueden utilizar de dos formas: DIRECTORIO DE NIVEL NICO O DIRECTORIO PLANO

Con este mtodo, se almacenan todos los archivos en un solo nivel, este mtodo en sistemas donde el volumen de archivos no es grande.[ ] DIRECTORIO JERARQUICO Los archivos son almacenados por medio de directorios, esta clasificacin se de acuerdo a la conveniencia del usuario o de la empresa. [ ] .La estructura tiene una forma de rbol con raz, este mtodo es el ms utilizado debido a que la revisin o bsqueda se realiza de forma sencilla. Para accesar a los archivos que se almacenan en un sistema jerrquico, el usuario debe indicar el o los directorios que se deben recorrer para localizar el archivo deseado, a esto se le denomina ruta de acceso del archivo. La ruta de acceso puede ser de dos formas: Ruta absoluta.- Este tipo de ruta de acceso inicia siempre con una diagonal invertida [ ] C:\Edit c:\SOS\sistemas\report.txt Ruta relativa.- Este tipo de ruta de acceso realiza la bsqueda del archivo en el directorio de trabajo actual, si el archivo no se localiza aqu, el S.O. lo buscar en los directorios especificados en el PATH de un archivo con extensin .BAT. C:\Edit report.txt 2.2. - OPERACIONES GENERALES QUE SE REALIZAN SOBRE UN ARCHIVO. Las operaciones generales que se realizan son: Creacin. Escritura de todos sus registros. Consulta. Lectura de todos sus registros. Actualizacin. Insercin supresin o modificacin de algunos de sus registros

Clasificacin. Reubicacin de los registros de tal forma que queden ordenados segn determinados criterios. Borrado. Eliminando total del archivo, dejando libre el espacio del soporte que ocupaba. 3. - ORGANIZACIN DE LOS ARCHIVOS. Los archivos se encuentran organizados lgicamente como una secuencia de registros de varias longitudes diferentes. Los archivos de registros de longitud fija: son los que almacenan la informacin en los archivos mediante un encabezado y luego se introducen uno a uno los registros ubicados en posiciones consecutivas. Los registros de longitud variable: es el almacenamiento de registros de varios tipos en un archivo y permite uno o ms campos de longitudes variables y dichos campos pueden ser repetidos. La longitud de los registros debe estar definida correctamente para poder leer y escribir de forma efectiva. 3.1. - ENFOQUES GENERALES PARA LA ORGANIZACIN DE ARCHIVOS. Los enfoques son: 1. - Enfoque de acceso secuencial: Se refiere al procesamiento de los archivos de acuerdo con el orden especifico. Ejemplo archivo secuenciales y de texto. 2. - Enfoque de acceso Directo Permite recuperar registros individuales sin leer otros registros del archivo, ejemplos archivos indizados. 3.2. - ARCHIVOS SECUENCIALES. Se refiere al procesamiento de los registros, no importa el orden en que se haga, para eso los registros estn organizados en forma de una lista y recuperarlos y procesarlos uno por uno de principio a fin.

Rudimentos de los archivos Secuenciales; dependiendo del dispositivo de almacenamiento utilizado el archivo se puede mostrar el usuario como si fuera un sistema secuencial. Al finalizar un archivo secuencial se denota con una marca de fin de archivo. (End end-of-file) El usuario de un archivo secuancial puede ver los registros en un orden secuancial simple. La nica forma de recuperar registros es comenzar al principio y extraerlos en el orden contemplado. Cuestiones de programacin; la manipulacin de los archivos se hace en el contexto de la programacin en un lenguaje por procedimientos de alto nivel. Estos lenguajes tienden a expresar la manipulacin de archivos mediante subrutinas que se definen como parte del lenguaje formal o se incluyen como extensiones del lenguaje en una biblioteca estndar. La mayor parte de los lenguajes por procedimiento de alto nivel cuenta con caractersticas que ayudan a detectar la marca de fin de archivo. 3.3. -ARCHIVOS DE TEXTO. Tambin conocidos como (Slream File) son utilizados para almacenar documentos que consisten en texto; En ellos, cada registro es un solo smbolo o cdigo de control. El leer estos archivos recibimos la informacin en orden secuencial en el que aparece cuando lo vemos en un monitor. Los archivos de texto son una secuencia de lneas separadas por marcas de fin de lnea. Rudimentos de los archivos de textos; El usuario escribe los archivos de textos mediante un procesador de palabras que le permitir almacenar la informacin pero no estrictamente en forma secuencial.

El procesador tambin nos permite desplazarnos por todo el bloque de informacin y permitirnos realizar modificaciones. Mientras el usuario avance rpidamente en la lectura de registro lograra ver mas archivos. Cuestiones de programacin; Casi todos los entornos de programacin por procedimientos de alto nivel cuentan con subrutinas para manipular los archivos de texto. Estas subrutinas pueden formar parte de la definicin formal del lenguaje o que se ofrezca en biblioteca como extensiones del mismo. 3.4. - ARCHIVOS INDIZADOS. Es la aplicacin de incluir ndices en el almacenamiento de los archivos; de esta forma nos ser ms fcil buscar algn registro sin necesidad de ver todo el archivo. Un ndice en un archivo consiste en un listado de los valores del campo clave que ocurren en el archivo, junto con la posicin de registro correspondiente en el almacenamiento masivo. Fundamento de los ndices a.- La colocacin de un listado al inicio del archivo: para la identificacin del contenido. b.- La presentacin de un segundo ndice: para reflejar la informacin de cada punto principal del ndice anterior. c.- La actualizacin de los ndices: Cuando se insertan y eliminan archivos, es preciso actualizar los ndices para evitar contratiempos actualizando un archivo. d.- La organizacin de un ndice: Nos evita examinar archivo por archivo para recuperar algn registro buscado; por lo tanto ahorraramos tiempo si tenemos una adecuado organizacin de los ndices. Cuestiones de Programacin

Algunos lenguajes de alto nivel cuentan con subttulos para manipular los archivos de un registro indizado. Valindose de las subrutinas es posible escribir programas sin tener que preocuparse por la estructura real del sistema de ndices que se aplique. 3.5. - ARCHIVOS DISPERSOS. Tambin llamados (Hashed Files) representan un sistema de almacenamiento de archivos que solo ofrece acceso directo, y permiten calcular la posicin de un registro en el almacenamiento masivo. Rudimentos de los archivos dispersos. El usuario debe dividir el rea de almacenamiento asignando al archivo en varias secciones llamadas cubetas para poder ingresar los datos. La distribucin de la informacin en las cubetas es problemtica debido a que la estructura de los archivos es dispersa. Dentro de los archivos se presentan colisiones de informacin debido al agrupamiento de los registros ingresados. Cuestiones de programacin. Casi ninguno de los lenguajes de programacin por procedimientos en la actualidad ofrece implantaciones directas de archivos dispersos; esto es debido a las cuestiones dependientes de la aplicacin implicadas en el diseo de estos archivos. 4. -MEDIDAS DE UTILIZACIN DE LOS ARCHIVOS. Para utilizar un archivo debemos tener en cuenta: 1. - ndice de Volatilidad; Un archivo es voltil cuando tiene un alto porcentaje de adiciones y supresiones debido al ingreso o eliminacin de registros respecto al numero promedio de registros que haya en el archivo.

2. - ndice de Actividad; Un archivo es activo cuando tiene un alto porcentaje de utilidad sea de actualizacin o consulta en un periodo de tiempo fijo respecto al numero promedio de registro que se encuentran en el archivo. El ndice de actividad suele emplearse para saber si un archivo puede explotarse como una organizacin secuencial o relativa. Archivos de acceso directo (con tipo) Los archivos tipeados (con tipo), tambin llamados archivos binarios, contienen datos de tipo simple o estructurado, tales como integer, real , record, etc., excepto otro tipo de archivos. Los archivos con tipos estn estructurados en elementos o registros (record) cuyo tipo puede ser cualquiera. A los elementos de estos archivos se accede directamente, al no situarse stos en posiciones fsicamente consecutivas, sino en posiciones lgicas. Esta es la razn por la cual se les denomina archivos de acceso aleatorio o directo. Los elementos de los archivos aleatorios son de igual tamao y el trmino acceso directo significa que es posible acceder directamente a un elemento con solo especificar su posicin 5. - DEFINICIONES. Los ms utilizados en el desarrollo del tema son: Archivo (Fichero): Conjunto de informacin estructurada en unidades de acceso denominada registro. Registros. Estructura de datos formada por uno o ms elementos denominados "Campos" y estos pueden estar compuestos a su vez por "subcampos". Claves:

Se denomina a un campo especial del registro que sirve para identificarlo Bloque: Es la cantidad de informacin que se transfiere en cada operacin de lectura o escritura sobre un archivo. Campo: Es cada uno de los diferentes datos que constituyen un registro lgico. BIBLIOGRAFIA 1.- Estructura de Datos en Pascal, Autor Aarn M. Tenenbaum, Moshe J. Augentein. Primera edicin. 2.- Diseo y Administracin de Base de Datos Gary W. Hansen, James V. Hansen, Segunda Edicin. 3.- Gua de Estructura y Procesamiento de Datos Profesor David Lpez, Segundo semestre U.N.I.R. (Maracaibo). 4.5.- http://www2.ing.puc.cl/iic1102/materia/cap10.htm 6.http://www.uady.mx/sitios/matemati/enlinea/admin_arch/ma teriales/material1.html 7.http://coqui.lce.org/cadiaz/CEDU5120V/Contenido/ArchExt.h tm 8.http://www.itlp.edu.mx/publica/tutoriales/pascal/u8_8_8.ht ml

Acceso secuencial a archivosVisual Studio .NET 2003 El uso de System.IO es el mtodo recomendado para crear archivos de texto, pero si necesita utilizar mtodos de creacin de archivos de texto ms antiguos, en esta seccin se muestra cmo hacerlo. El acceso secuencial funciona mejor cuando se desea procesar archivos compuestos nicamente de texto, como los archivos creados con un editor de texto habitual, y no archivos en los que los datos se dividen en una serie de registros. El acceso secuencial no es adecuado para almacenar largas series de nmeros, puesto que cada nmero se almacena como una cadena de caracteres. As, un nmero de cuatro dgitos necesitara cuatro bytes de almacenamiento en lugar de los dos bytes que se necesitan para almacenar el mismo nmero como un entero. En esta seccin Abrir archivos para acceso secuencial Describe cmo obtener acceso para la entrada, salida y adicin de caracteres dentro de un archivo. Editar archivos abiertos para acceso secuencial Explica cmo utilizar Line Input, InputString e Input para editar archivos. Escribir cadenas para archivos de acceso secuencial Explica cmo utilizar las funciones Print y Write para almacenar cadenas en archivos de texto. Secciones relacionadas Acceso a archivos con FileSystemObject Describe cmo crear objetos, tener acceso a sus propiedades y utilizar los mtodos adecuados.

Abrir archivos para acceso secuencialVisual Studio .NET 2003 Cuando se abre un archivo para acceso secuencial, se debe especificar si se van a escribir caracteres en el archivo (modo Input), si se van a extraer caracteres del archivo (modo Output) o si se van a anexar caracteres al archivo (modo Append). Para abrir un archivo para acceso secuencial

Utilice FileOpen (Funcin) con la siguiente sintaxis: Copiar

FileOpen(FileNumber, FileName, OpenMode.Input)Cuando se abre un archivo secuencial para Input, el archivo ya debe existir; de lo contrario, se producir un error. No obstante, cuando se intenta abrir un archivo inexistente para Output o Append, la instruccin FileOpen primero crea el archivo y a continuacin lo abre. Una vez que se abre un archivo para una operacin Input, Output o Append, debe cerrarse con la instruccin FileClose (Funcin) antes de volver abrirlo para otro tipo de operacin. Nota de seguridad Al escribir en archivos, si el archivo en el que intentan escribir no existe, es posible que algunas aplicaciones necesiten crearlo. Para hacerlo as, necesitan

permiso para el directorio en el que se crear el archivo. No obstante, si el archivo ya existe, la aplicacin slo necesita permiso Write para el propio archivo. Siempre que sea posible, es ms seguro crear el archivo durante la implementacin y conceder permiso Write slo para ese archivo, en lugar de hacerlo para todo el directorio. Tambin es ms seguro escribir datos en directorio de usuarios que en el directorio raz o en el directorio Archivos de programa. Vea tambin Acceso secuencial a archivos | Editar archivos abiertos para acceso secuencial | Acceso a archivos con funciones de Visual Basic en tiempo de ejecucin | FileOpen (Funcin) | Acceso aleatorio a archivos | Acceso binario a archivos | Escribir cadenas para archivos de acceso secuencial

Editar archivos abiertos para acceso secuencialVisual Studio .NET 2003 Para editar un archivo, primero debe leer su contenido a variables de programa, despus cambiar las variables y finalmente volver a escribir las variables en el archivo. En las siguientes secciones se describe como se editan los registros abiertos para acceso secuencial. Para leer cadenas de archivos

1. Recupere el contenido de un archivo de texto abrindolo para Input. 2. Utilice las funciones LineInput, InputString o Input para copiar el archivo avariables de programa. Visual Basic proporciona instrucciones y funciones que leen y escriben archivos secuenciales carcter a carcter o lnea a lnea. Por ejemplo, el siguiente fragmento de cdigo lee un archivo lnea a lnea:

Copiar Dim LinesFromFile, NextLine As String, FileNum As Integer Do Until EOF(FileNum) Nextline = LineInput(FileNum) LinesFromFile = LinesFromFile & NextLine & Chr(13) & Chr(10) LoopAunque la funcin LineInput reconoce el fin de una lnea cuando llega a la secuencia retorno de carro y de salto de lnea, no incluye esa secuencia cuando lee la lnea en la variable. Si desea conservar el retorno de carro y el saldo de lnea, el cdigo deber agregarlos. Puede utilizar la funcin InputString para copiar un nmero especificado de caracteres desde un archivo a una variable, siempre que la variable sea lo bastante grande. Por ejemplo, el siguiente cdigo utiliza InputString para copiar el nmero de caracteres de CharCount a una variable: Copiar

LinesFromFile = InputString(FileNum, CharCount)Tambin puede utilizar la funcin Input, que lee una lista de nmeros y expresiones de cadena desde un archivo. Por ejemplo, para leer una lnea de un archivo de listas de distribucin, puede utilizar las siguientes instrucciones: Copiar

Input(FileNum, fname) Input(FileNum, lname) Input(FileNum, street) Input(FileNum, city) Input(FileNum, state) Input(FileNum, zip)Vea tambin Acceso secuencial a archivos | Abrir archivos para acceso secuencial | Acceso a archivos con funciones de Visual Basic en tiempo de ejecucin | FileOpen (Funcin) | Acceso aleatorio a archivos | Acceso binario a archivos | Escribir cadenas para archivos de acceso secuencial

Escribir cadenas para archivos de acceso secuencialVisual Studio .NET 2003 Puede agregar datos en forma de cadenas a archivos existentes mediante Print (Funcin) o en forma de nmeros y expresiones de cadena mediante la funcin Write (Funcin). Para escribir cadenas en archivos

1. Utilice FileOpen (Funcin) para abrir un archivo de texto para Output o Append. 2. Utilice la funcin Print para escribir las cadenas en el archivo como en elCopiar Print(FileNum, TheBox.Text)Visual Basic tambin admite la funcin Write, que escribe una lista de nmeros y expresiones de cadena en un archivo. Separa automticamente cada expresin mediante una coma y pone entre comillas las expresiones de tipo String, como se ilustra en el siguiente cdigo: siguiente ejemplo, que un editor de texto puede utilizar para copiar el contenido de un cuadro de texto en un archivo:

Copiar Dim AnyString As String, AnyNumber, FileNum As Integer AnyString = "AnyCharacters" AnyNumber = 23445 Write(FileNum, AnyString, AnyNumber)El segmento de cdigo anterior escribe dos expresiones en el archivo especificado por FileNum. El primero contiene una cadena, y el segundo el nmero 23445. En consecuencia, Visual Basic escribe los siguientes caracteres (incluida la puntuacin) en el archivo:

Copiar "AnyCharacters",23445Nota Si est realizando el mantenimiento de una base de datos mediante Write e Input con acceso secuencial, considere la posibilidad de cambiar a FilePutObject y

FileGetObject con acceso aleatorio o binario; ambos tipos de acceso son ms adecuados para datos en forma de registros. Una de las principales diferencias entre Print y Write es que Print da formato a la cadena, mientras que Write no. Por este motivo, Print no encierra entre comillas la cadena, que tiene el formato que el usuario desea ver, mientras que Write s. Utilice una funcin que escriba cada cadena en una lnea nueva, por ejemplo PrintLine o WriteLine si requiere cadenas separadas por lneas. Vea tambin Acceso secuencial a archivos | Abrir archivos para acceso secuencial | Editar archivos abiertos para acceso secuencial | Acceso a archivos con funciones de Visual Basic en tiempo de ejecucin | Acceso aleatorio a archivos | Acceso binario a archivos | Print, PrintLine (Funciones) | Write, WriteLine (Funciones) | LineInput (Funcin)

Cdigo de: Leer archivo secuencialEjemplos prcticos para la programacin en java. Visualiza el cdigo fuente o descrgalo directamente a tu PC. Estes ejemplos son bsicos para la programar en java y puramente orientativos. Esperemos que te ayuden. Descripcin: Este programa lee un archivo de objetos en forma secuencial y muestra cada uno de los registros. Autor:Casidiablo Web:http://casidiablo.blogspot.com

Nombre 1IUBanco.java 2

Tama o 4035Descar gar Descar gar Descar gar

LeerArchivoSecuencial. 6788 java 1699

3RegistroCuentas.java

Ejemplos

Fichero: IUBanco.jav a1 // Una GUI reutilizable para los ejemplos de este captulo. 2 import java.aw t.*; 3 import javax.sw ing.*; 4 public class IUBanco extends JPanel 5{ 6 // texto de las etiquetas para la GUI 7 protected final static String nombres[] = { "Nmero de cuenta", 8 "Primer nombre", "Apellido", "Saldo", "Monto de la transaccin" }; 9 10 // componentes de GUI; protegidos para el acceso futuro de las subclases 11 protected JLabel etiquetas[]; 12 protected JTextField campos[]; 13 protected JButton hacerTarea1, hacerTarea2; 14 protected JPanel panelInternoCentro, panelInternoSur; 15 16 protected int tamanio; // nmero de campos de texto en la GUI 17 18 // constantes que representan a los campos de texto en la GUI 19 public static final int CUENTA = 0, PRIMERNOMBRE = 1, APELLIDO = 2, 20 SALDO = 3, TRANSACCION = 4;

1 // Una GUI reutilizable para los ejemplos de este captulo. 2 import java.awt.*; 3 import javax.swing.*; 4 public class IUBanco extends JPanel 5{ 6 7 8 9 10 // componentes de GUI; protegidos para el acceso futuro de las subclases 11 protected JLabel etiquetas[]; // texto de las etiquetas para la GUI protected final static String nombres[] = { "Nmero de cuenta", "Primer nombre", "Apellido", "Saldo", "Monto de la transaccin" };

12 13 14 15 16 17 18 19 20 21

protected JTextField campos[]; protected JButton hacerTarea1, hacerTarea2; protected JPanel panelInternoCentro, panelInternoSur;

protected int tamanio; // nmero de campos de texto en la GUI

// constantes que representan a los campos de texto en la GUI public static final int CUENTA = 0, PRIMERNOMBRE = 1, APELLIDO = 2, SALDO = 3, TRANSACCION = 4;

22 // Configurar GUI. El argumento miTamanio del constructor determina el nmero de 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 // crear campos de texto for ( int cuenta = 0; cuenta < campos.length; cuenta++ ) campos[ cuenta ] = new JTextField(); // crear etiquetas for ( int cuenta = 0; cuenta < etiquetas.length; cuenta++ ) etiquetas[ cuenta ] = new JLabel( nombres[ cuenta ] ); // filas de componentes de GUI. public IUBanco( int miTamanio ) { tamanio = miTamanio; etiquetas = new JLabel[ tamanio ]; campos = new JTextField[ tamanio ];

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

// crear panel para distribuir etiquetas y campos panelInternoCentro = new JPanel(); panelInternoCentro.setLayout( new GridLayout( tamanio, 2 ) );

// adjuntar etiquetas y campos a panelInternoCentro for ( int cuenta = 0; cuenta < tamanio; cuenta++ ) { panelInternoCentro.add( etiquetas[ cuenta ] ); panelInternoCentro.add( campos[ cuenta ] ); }

// crear botones genricos; sin etiquetas ni manejadores de eventos hacerTarea1 = new JButton(); hacerTarea2 = new JButton();

// crear panel para distribuir los botones y adjuntarlos panelInternoSur = new JPanel(); panelInternoSur.add( hacerTarea1 ); panelInternoSur.add( hacerTarea2 );

// establecer esquema de este contenedor y adjuntarle los paneles setLayout( new BorderLayout() ); add( panelInternoCentro, BorderLayout.CENTER ); add( panelInternoSur, BorderLayout.SOUTH );

validate(); // validar esquema

64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

} // fin del constructor

// devolver referencia al botn de tarea genrico hacerTarea1 public JButton obtenerBotonHacerTarea1() { return hacerTarea1; }

// devolver referencia al botn de tarea genrico hacerTarea2 public JButton obtenerBotonHacerTarea2() { return hacerTarea2; }

// devolver referencia al arreglo campos de objetos JTextField public JTextField[] obtenerCampos() { return campos; }

// borrar el contenido de los campos de texto public void borrarCampos() { for ( int cuenta = 0; cuenta < tamanio; cuenta++ ) campos[ cuenta ].setText( "" ); }

90 91 // establecer valores de los campos de texto; lanzar IllegalArgumentException si 92 93 94 95 96 97 98 99 100 101 102 103 104 // obtener arreglo de objetos String con el contenido actual de los campos de texto 105 106 107 108 109 110 111 112 113 114 } return valores; for ( int cuenta = 0; cuenta < tamanio; cuenta++ ) valores[ cuenta ] = campos[ cuenta ].getText(); public String[] obtenerValoresCampos() { String valores[] = new String[ tamanio ]; } for ( int cuenta = 0; cuenta < tamanio; cuenta++ ) campos[ cuenta ].setText( cadenas[ cuenta ] ); { if ( cadenas.length != tamanio ) throw new IllegalArgumentException( "Debe haber " + tamanio + " objetos String en el arreglo" ); // hay un nmero incorrecto de objetos String en el argumento public void establecerValoresCampos( String cadenas[] ) throws IllegalArgumentException

115 } // fin de la clase IUBanco1 // Este programa lee un archivo de objetos en forma secuencial 2 // y muestra cada uno de los registros. 3 import java.io.*; 4 import java.awt.*; 5 import java.awt.event.*; 6 import javax.swing.*; 7 public class LeerArchivoSecuencial extends JFrame 8{ 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // obtener referencia al botn de tarea genrico hacerTarea1 de IUBanco 23 24 25 botonAbrir = interfazUsuario.obtenerBotonHacerTarea1(); botonAbrir.setText( "Abrir archivo" ); // crear instancia de la interfaz de usuario reutilizable interfazUsuario = new IUBanco( 4 ); // cuatro campos de texto getContentPane().add( interfazUsuario, BorderLayout.CENTER ); // Constructor -- inicializar el marco public LeerArchivoSecuencial() { super( "Leer un archivo secuencial de objetos" ); private ObjectInputStream entrada; private IUBanco interfazUsuario; private JButton botonSiguiente, botonAbrir;

26 // registrar componente de escucha para llamar a abrirArchivo cuando se oprima el botn 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 // registrar componente de escucha de ventana para evento de cierre de ventana 43 44 45 46 47 48 49 50 // cerrar el archivo y terminar la aplicacin public void windowClosing( WindowEvent evento ) { // clase interna annima para manejar evento windowClosing new WindowAdapter() { addWindowListener( ); // fin de la llamada a addActionListener } // fin de la clase interna annima } // cerrar archivo y terminar la aplicacin public void actionPerformed( ActionEvent evento ) { abrirArchivo(); // clase interna annima para manejar evento de botonAbrir new ActionListener() { botonAbrir.addActionListener(

51 52 53 54 55 56 57 58 59 60 }

if ( entrada != null ) cerrarArchivo();

System.exit( 0 );

} // fin de la clase interna annima

); // fin de la llamada a addWindowListener

61 // obtener referencia al botn de tarea genrico hacerTarea2 de IUBanco 62 63 64 65 66 // registrar componente de escucha para llamar a leerRegistro cuando se oprima el botn 67 68 69 70 71 72 // llamar a leerRegistro cuando el usuario haga clic en siguienteRegistro 73 74 75 public void actionPerformed( ActionEvent evento ) { leerRegistro(); // clase interna annima para manejar evento de siguienteRegistro new ActionListener() { botonSiguiente.addActionListener( botonSiguiente = interfazUsuario.obtenerBotonHacerTarea2(); botonSiguiente.setText( "Siguiente registro" ); botonSiguiente.setEnabled( false );

76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

}

} // fin de la clase interna annima

); // fin de la llamada a addActionListener

pack(); setSize( 300, 200 ); setVisible( true );

} // fin del constructor de LeerArchivoSecuencial

// permitir al usuario seleccionar el archivo a abrir private void abrirArchivo() {

91 // mostrar el cuadro de dilogo del archivo, para que el usuario pueda seleccionar el archivo a abrir 92 93 94 95 96 97 // si el usuario hizo clic en el botn Cancelar en el cuadro de dilogo, regresar 98 99 100 if ( resultado == JFileChooser.CANCEL_OPTION ) return; int resultado = selectorArchivo.showOpenDialog( this ); JFileChooser selectorArchivo = new JFileChooser(); selectorArchivo.setFileSelectionMode( JFileChooser.FILES_ONLY );

101 102 103 104

// obtener el archivo seleccionado File nombreArchivo = selectorArchivo.getSelectedFile();

// mostrar error si el nombre de archivo es incorrecto

105 if ( nombreArchivo == null || nombreArchivo.getName().equals( "" ) ) 106 JOptionPane.showMessageDialog( this, "Nombre de archivo incorrecto", 107 "Nombre de archivo incorrecto", JOptionPane.ERROR_MESSAGE ); 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 } // procesar excepciones que pueden ocurrir al abrir el archivo catch ( IOException excepcionES ) { JOptionPane.showMessageDialog( this, "Error al abrir el archivo", "Error", JOptionPane.ERROR_MESSAGE ); } botonAbrir.setEnabled( false ); botonSiguiente.setEnabled( true ); // abrir archivo try { entrada = new ObjectInputStream( new FileInputStream( nombreArchivo ) ); else {

126 127 128 129 130 131 132 133 134 135 136 137 138 139 140

} // fin de instruccin else

} // fin del mtodo abrirArchivo

// leer registro del archivo public void leerRegistro() { RegistroCuentas registro;

// leer los valores del archivo try { registro = ( RegistroCuentas ) entrada.readObject();

// crear arreglo de objetos String a mostrar en la GUI String valores[] = { String.valueOf( registro.obtenerCuenta() ),

141 registro.obtenerPrimerNombre(), registro.obtenerApellidoPaterno(), 142 143 144 145 146 147 148 149 150 151 // mostrar mensaje al llegar al fin del archivo catch ( EOFException excepcionFinDeArchivo ) { botonSiguiente.setEnabled( false ); } // mostrar contenido del registro interfazUsuario.establecerValoresCampos( valores ); String.valueOf( registro.obtenerSaldo() ) };

152 JOptionPane.showMessageDialog( this, "No hay ms registros en el archivo", 153 154 155 156 157 158 objeto", 159 160 161 162 // mostrar mensaje de error si no se puede leer debido a un problema con el archivo 163 164 165 166 167 168 169 170 171 172 173 174 175 176 // cerrar archivo y terminar la aplicacin private void cerrarArchivo() { // cerrar archivo y salir try { entrada.close(); } // fin del mtodo leerRegistro } catch ( IOException excepcionES ) { JOptionPane.showMessageDialog( this, "Error al leer del archivo", "Error de lectura", JOptionPane.ERROR_MESSAGE ); } // mostrar mensaje de error si no se encuentra la clase catch ( ClassNotFoundException excepcionClaseNoEncontrada ) { JOptionPane.showMessageDialog( this, "No se pudo crear el } "Fin del archivo", JOptionPane.ERROR_MESSAGE );

"Clase no encontrada", JOptionPane.ERROR_MESSAGE );

177 178 179 }

System.exit( 0 );

180 // procesar excepcin que puede ocurrir mientras se cierra el archivo 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 } // fin de la clase LeerArchivoSecuencial } public static void main( String args[] ) { new LeerArchivoSecuencial(); } // fin del mtodo cerrarArchivo } System.exit( 1 ); catch ( IOException excepcionES ) { JOptionPane.showMessageDialog( this, "Error al cerrar el archivo", "Error", JOptionPane.ERROR_MESSAGE );

Fichero: LeerArchivoSecuencial.java

1 // Este programa lee un archivo de objetos en forma secuencial 2 // y muestra cada uno de los registros. 3 import java.io.*; 4 import java.aw t.*; 5 import java.aw t.event.*; 6 import javax.sw ing.*; 7 public class LeerArchivoSecuencial extends JFrame 8{ 9 private ObjectInputStream entrada; 10 private IUBanco interfazUsuario; 11 private JButton botonSiguiente, botonAbrir; 12 13 // Constructor -- inicializar el marco 14 public LeerArchivoSecuencial() 15 { 16 super( "Leer un archivo secuencial de objetos" ); 17 18 // crear instancia de la interfaz de usuario reutilizable 19 interfazUsuario = new IUBanco( 4 ); // cuatro campos de texto 20 getContentPane().add( interfazUsuario, BorderLayout.CENTER );

1 // Este programa lee un archivo de objetos en forma secuencial 2 // y muestra cada uno de los registros. 3 import java.io.*; 4 import java.awt.*; 5 import java.awt.event.*; 6 import javax.swing.*; 7 public class LeerArchivoSecuencial extends JFrame 8{ 9 10 11 12 13 14 15 16 // Constructor -- inicializar el marco public LeerArchivoSecuencial() { super( "Leer un archivo secuencial de objetos" ); private ObjectInputStream entrada; private IUBanco interfazUsuario; private JButton botonSiguiente, botonAbrir;

17 18 19 20 21 22 // obtener referencia al botn de tarea genrico hacerTarea1 de IUBanco 23 24 25 26 // registrar componente de escucha para llamar a abrirArchivo cuando se oprima el botn 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 ); // fin de la llamada a addActionListener } // fin de la clase interna annima } // cerrar archivo y terminar la aplicacin public void actionPerformed( ActionEvent evento ) { abrirArchivo(); // clase interna annima para manejar evento de botonAbrir new ActionListener() { botonAbrir.addActionListener( botonAbrir = interfazUsuario.obtenerBotonHacerTarea1(); botonAbrir.setText( "Abrir archivo" ); // crear instancia de la interfaz de usuario reutilizable interfazUsuario = new IUBanco( 4 ); // cuatro campos de texto getContentPane().add( interfazUsuario, BorderLayout.CENTER );

42 // registrar componente de escucha de ventana para evento de cierre de ventana 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 // obtener referencia al botn de tarea genrico hacerTarea2 de IUBanco 62 63 64 65 66 // registrar componente de escucha para llamar a leerRegistro cuando se oprima el botn botonSiguiente = interfazUsuario.obtenerBotonHacerTarea2(); botonSiguiente.setText( "Siguiente registro" ); botonSiguiente.setEnabled( false ); ); // fin de la llamada a addWindowListener } // fin de la clase interna annima } System.exit( 0 ); // cerrar el archivo y terminar la aplicacin public void windowClosing( WindowEvent evento ) { if ( entrada != null ) cerrarArchivo(); // clase interna annima para manejar evento windowClosing new WindowAdapter() { addWindowListener(

67 68 69 70 71

botonSiguiente.addActionListener(

// clase interna annima para manejar evento de siguienteRegistro new ActionListener() {

72 // llamar a leerRegistro cuando el usuario haga clic en siguienteRegistro 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 // permitir al usuario seleccionar el archivo a abrir private void abrirArchivo() { } // fin del constructor de LeerArchivoSecuencial pack(); setSize( 300, 200 ); setVisible( true ); ); // fin de la llamada a addActionListener } // fin de la clase interna annima } public void actionPerformed( ActionEvent evento ) { leerRegistro();

91 // mostrar el cuadro de dilogo del archivo, para que el usuario pueda seleccionar el archivo a abrir

92 93 94 95 96

JFileChooser selectorArchivo = new JFileChooser(); selectorArchivo.setFileSelectionMode( JFileChooser.FILES_ONLY );

int resultado = selectorArchivo.showOpenDialog( this );

97 // si el usuario hizo clic en el botn Cancelar en el cuadro de dilogo, regresar 98 99 100 101 102 103 104 // mostrar error si el nombre de archivo es incorrecto // obtener el archivo seleccionado File nombreArchivo = selectorArchivo.getSelectedFile(); if ( resultado == JFileChooser.CANCEL_OPTION ) return;

105 if ( nombreArchivo == null || nombreArchivo.getName().equals( "" ) ) 106 JOptionPane.showMessageDialog( this, "Nombre de archivo incorrecto", 107 "Nombre de archivo incorrecto", JOptionPane.ERROR_MESSAGE ); 108 109 110 111 112 113 114 115 // abrir archivo try { entrada = new ObjectInputStream( new FileInputStream( nombreArchivo ) ); else {

116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 } }

botonAbrir.setEnabled( false ); botonSiguiente.setEnabled( true );

// procesar excepciones que pueden ocurrir al abrir el archivo catch ( IOException excepcionES ) { JOptionPane.showMessageDialog( this, "Error al abrir el archivo", "Error", JOptionPane.ERROR_MESSAGE );

} // fin de instruccin else

} // fin del mtodo abrirArchivo

// leer registro del archivo public void leerRegistro() { RegistroCuentas registro;

// leer los valores del archivo try { registro = ( RegistroCuentas ) entrada.readObject();

// crear arreglo de objetos String a mostrar en la GUI String valores[] = { String.valueOf( registro.obtenerCuenta() ),

141 registro.obtenerPrimerNombre(), registro.obtenerApellidoPaterno(),

142 143 144 145 146 147 148 149 150 151 }

String.valueOf( registro.obtenerSaldo() ) };

// mostrar contenido del registro interfazUsuario.establecerValoresCampos( valores );

// mostrar mensaje al llegar al fin del archivo catch ( EOFException excepcionFinDeArchivo ) { botonSiguiente.setEnabled( false );

152 JOptionPane.showMessageDialog( this, "No hay ms registros en el archivo", 153 154 155 156 157 158 objeto", 159 160 161 162 // mostrar mensaje de error si no se puede leer debido a un problema con el archivo 163 164 165 166 catch ( IOException excepcionES ) { JOptionPane.showMessageDialog( this, "Error al leer del archivo", "Error de lectura", JOptionPane.ERROR_MESSAGE ); } // mostrar mensaje de error si no se encuentra la clase catch ( ClassNotFoundException excepcionClaseNoEncontrada ) { JOptionPane.showMessageDialog( this, "No se pudo crear el } "Fin del archivo", JOptionPane.ERROR_MESSAGE );

"Clase no encontrada", JOptionPane.ERROR_MESSAGE );

167 168 169 170 171 172 173 174 175 176 177 178 179

}

} // fin del mtodo leerRegistro

// cerrar archivo y terminar la aplicacin private void cerrarArchivo() { // cerrar archivo y salir try { entrada.close(); System.exit( 0 ); }

180 // procesar excepcin que puede ocurrir mientras se cierra el archivo 181 182 183 184 185 186 187 188 189 190 191 192 public static void main( String args[] ) { new LeerArchivoSecuencial(); } // fin del mtodo cerrarArchivo } System.exit( 1 ); catch ( IOException excepcionES ) { JOptionPane.showMessageDialog( this, "Error al cerrar el archivo", "Error", JOptionPane.ERROR_MESSAGE );

193 194

}

195 } // fin de la clase LeerArchivoSecuencial

Fichero: RegistroCuentas.java1 // Una clase que representa un registro de informacin. 2 import java.io.Serializable; 3 public class RegistroCuentas implements Serializable 4{ 5 private int cuenta; 6 private String primerNombre; 7 private String apellidoPaterno; 8 private double saldo; 9 10 // el constructor sin argumentos llama al otro constructor con valores predeterminados 11 public RegistroCuentas() 12 { 13 this( 0, "", "", 0.0 ); 14 } 15 16 // inicializar un registro 17 public RegistroCuentas( int cta, String nombre, String apellido, double sald ) 18 { 19 establecerCuenta( cta ); 20 establecerPrimerNombre( nombre );

1 // Una clase que representa un registro de informacin. 2 import java.io.Serializable; 3 public class RegistroCuentas implements Serializable 4{ 5 6 7 8 9 10 // el constructor sin argumentos llama al otro constructor con valores predeterminados 11 public RegistroCuentas() private int cuenta; private String primerNombre; private String apellidoPaterno; private double saldo;

12 13 14 15 16

{ this( 0, "", "", 0.0 ); }

// inicializar un registro

17 public RegistroCuentas( int cta, String nombre, String apellido, double sald ) 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 // establecer primer nombre } // obtener nmero de cuenta public int obtenerCuenta() { return cuenta; } // establecer nmero de cuenta public void establecerCuenta( int cta ) { cuenta = cta; } { establecerCuenta( cta ); establecerPrimerNombre( nombre ); establecerApellidoPaterno( apellido ); establecerSaldo( sald );

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

public void establecerPrimerNombre( String nombre ) { primerNombre = nombre; }

// obtener primer nombre public String obtenerPrimerNombre() { return primerNombre; }

// establecer apellido paterno public void establecerApellidoPaterno( String apellido ) { apellidoPaterno = apellido; }

// obtener apellido paterno public String obtenerApellidoPaterno() { return apellidoPaterno; }

// establecer saldo public void establecerSaldo( double sald ) {

64 65 66 67 68 69 70 71 72 } }

saldo = sald;

// obtener saldo public double obtenerSaldo() { return saldo;

73 } // fin de la clase RegistroCuentas

TodoJava 2007 tu pgina de programacin Java

Martes, 12 de Julio 2011. Aadir a favoritos

8.7 Archivos de acceso secuencial (con tipo)Dependiendo de la manera en que se accesen los registros de un archivo, se le clasifica como SECUENCIAL o como DIRECTO. En el caso de los archivos de ACCESO SECUENCIAL, para tener acceso al registro localizado en la posicin N, se deben haber accesado los N-1 registros previos, en un orden secuencial. Cuando se tienen pocos registros en un archivo, o que los registros son pequeos, la diferencia entre los tiempos de acceso de forma secuencial y directa puede no ser perceptible para el usuario; sin embargo, la diferencia viene a ser significativa cuando se manejan archivos con grandes cantidades de informacin. La forma de manejar los archivos de acceso secuencial es ms sencilla en la mayora de los lenguajes de programacin, por lo que su estudio se antepone al de los archivos de acceso directo. El manejo secuencial de un archivo es recomendable cuando se deben procesar todos o la mayora de los registros, como por ejemplo en los casos de una nmina de empleados o en la elaboracin de reportes contables.

8. Acceso secuencial indexado y B+Trees

8.1 Indices para bsquedas y reportesHasta el momento hemos estudiado 2 tipos de estructuras de archivos (organizacin de archivos): Acceso secuencial: Archivos que pueden recorrerse secuencialmente (registros contiguos, sin necesidad de offset) regresando los registros en algn orden especfico Archivos de datos que poseen archivos de ndices por diferentes llaves que permiten accesar los datos de distintas maneras, el archivo de datos se encuentra sin ningn orden (entry sequenced).

Indexamiento:

Problemas: Desafortunadamente el archivo secuencial es difcil de mantener. Los ndices (an usando un esquema de B-Tree) nos permiten hacer bsquedas rpidamente pero ...nos permiten recorrer el archivo secuencialmente ?? En realidad el B-Tree s nos permite recorrer el archivo en orden, pero no en una manera sencilla ya que debemos hacer demasiados "seeks" para poder hacerlo.

En la prctica en muchas situaciones se requieren de ambas cosas (bsquedas y accesos secuenciales), por ejemplo: En la universidad Bsquedas: horarios, adeudos, transcript Secuenciales: Reportes de calificaciones que se imprimen Bsquedas: agenda telefnica, vacaciones Secuenciales: cheques de nmina

En una empresa

Las 2 soluciones existentes:ISAM indexed sequential access method B+ Tree

8.2

Indexed Sequential Access Method (ISAM)

Bsicamente es la idea de tener un ndice esparcido, de manera que el archivo de datos lo agrupamos por bloques y en cada bloque existe un "rango" ordenado de los datos (Figura 8.1).

Figura 8.1

Lo importante a resaltar aqu es que los bloques no necesariamente estn formando una secuencia en el archivo, es decir, dentro del archivo de datos los bloques pueden estar desordenados, aqu el detalle es mantener un apuntador a cada bloque subsecuente como se muestra en la figura 8.2.

Figura 8.2

Reglas generales para un ndice ISAM: Podemos iniciar el archivo con un bloque o varios (definiendo previamente los rangos y dejando bloques vacos reutilizables). Cuando agregamos datos ubicamos el bloque correspondiente en base al ndice en memoria y procedemos a agregar la informacin. Si al insertar notamos que el bloque ya esta lleno entonces tenemos que partirlo en 2, muy similar al btree solo que aqui no necesitamos un separador de ramas, simplemente creamos otro bloque, dividimos equitativamente los datos y ajustamos los apuntadores entre los bloques

Para eliminar, ubicamos el bloque y eliminamos el registro Si al eliminar notamos que se pueden mezclar o unir dos bloques con pocos registros entonces lo podemos hacer y el bloque libre lo marcamos para reutilizacin

La creacin del ndice puede ser muy simple como el que se muestra en la tabla 8.1, donde slo se guardan los mximos valores de cada bloque; quizs si las llaves fueran numricas todo sera muy simple y podra quedar bien este esquema, pero en especial para cadenas (aunque tambin aplica para nmeros) lo que en realidad se busca es tener separadores que sirvan para varios casos ya que si eliminamos el mximo valor de un bloque entonces tendremos que alterar el ndice. Key BERNE CAGE DUTTON EVANS FOLK GADDIS Block number 1 2 3 4 5 6

Tabla 8.1 La figura 8.3 muestra una primer solucin de separadores basndose en los prefijos de las palabras. De esta manera nos evitamos el tener que estar actualizando constantemente el ndice. Estos separadores de rangos nos son nicos, depender del programador el definirlos, la figura 8.4 nos muestra una lista de opciones para el caso de los bloques 3 y 4.

Figura 8.3

Figura 8.4

8.3 B+ TreesEstas necesidades son el origen de los B+ Trees. Un B+ Tree es muy similar a un BTree en muchos aspectos, la principal diferencia es que en las "hojas" se encuentran todas las llaves ordenadas, mientras que en los dems nodos se encuentran slo algunas de ellas que sirven de camino para llegar rpidamente al nivel ms bajo. Aqu el orden se define como el nmero mximo de llaves que puede tener un nodo, cada nodo debe estar siempre al 50 % de su capacidad, excepto la raz que al menos deber tener 2 llaves (2 ligas); esto ltimo despus de haber pasado las inserciones iniciales donde obviamente la raz podr tener 1 sola llave. Para el ejemplo de la Figura 8.5 el orden que estamos considerando es 4. Insercin Lo primero que se debe hacer es buscar en qu nodo hoja debe insertarse, analizando desde la raz algunos de los nodos del rbol. El insertar una llave en un nodo que no esta lleno es fcil slo se actualiza el nodo, recordando que la llave "ms grande" debe promoverse siempre al nivel superior. Si se inserta en un nodo lleno entonces ocurre un "overfull" y el nodo deber partirse en 2, promoviendo al nivel superior las llaves ms grandes de los nuevos nodos. Recordar que al igual que los b-trees muchas de estas operaciones pueden causar acciones recursivas al alterar los niveles superiores y en caso de llegar a la raz entonces el rbol crecer en un nivel.

Figura 8.5

Figura 8.6Eliminacin: El proceso de eliminacin se puede deducir del proceso de insercin. Al eliminar una llave localizamos la hoja donde se encuentra la llave a eliminar y la eliminamos, aqu tendremos 2 opciones: 1) Se mantiene ms de la mitad de las llaves del nodo 2) Se presenta un "underflow" al tener menos de la mitad de llaves en el nodo.

Para el primer caso lo nico que se debe revisar es si la llave ms grande sigue siendo la misma, si la llave que eliminamos era la ms grande debemos actualizar el nivel superior (quizs sucesivamente si es el caso) Para el segundo caso debemos "concatenar" dos nodos hermanos, teniendo 2 casos: a) formando un solo nodo donde la llave mayor se promueve actualiza al nivel superior. b) formando 2 nodos cada uno 1/2 lleno y actualizando en el nivel superior las 2 llaves mayores de cada nodo.

Nuevamente es importante recordar que las eliminaciones pueden caer en un proceso recursivo que llegue a la raz en cuyo caso el rbol se reducir en un nivel.

Figura 8.7En esta seccin se analiz el modelo conceptual de los B+ Tree y se omitieron detalles de implementacin tales como la relacin que debe existir entre los nodos "hoja" para poder realizar un acceso secuencial (Figura 8.7) en ese nivel. Resumiendo: Los B+ Trees son un caso especial de B-Trees La gran diferencia es que en las hojas se encuentran todas las llaves y los dems nodos sirven como camino a dichas hojas Se podra llegar a pensar que el hecho de duplicar las llaves en los distintos niveles del rbol es demasiado costoso pero en realidad no lo es ya que esa duplicidad ocurre en disco (actualmente demasiado barato) y si recordamos la diferencia de "orden" un rbol B+ Tree del mismo orden que un B-Tree ocupar menos espacio ya que no almacena refencias a los datos y podramos elevar fcilmente su orden permitiendo tener rboles menos profundos; esto ltimo desde luego stos ltimos permitiendo bsquedas en ms corto tiempo. Se utilizan en casos donde se requieren tanto accesos aleatorios como secuenciales.

Nota: es importante mencionar que en la literatura muchos autores definen de maneras diferentes a los rboles, lo que para nosotros es un B+Tree para otros es un B-Tree, la nomenclatura empleada aqu es tomada del concepto original propuesto por Bayer, McCreight, Knuth y Comer.

8.4 Prefix B+ -TreesComo su nombre lo indica son una modificacin al algoritmo de B+ Trees La caracterstica de estos rboles radica en que el conjunto de llaves que NO son hojas del rbol (index set), no son llaves completas sino un "prefijo" (prefix) de dichas llaves, de manera que las llaves completas slo existen en el nives ms bajo (hojas del rbol). Similar a B+ Tree las hojas del rbol en realidad son "bloques" de datos que se van ligando unos con otros por ejemplo:Bloc Nex k t 1 INDEX

2 ADAMS...BAIRD...BIXBY...BO ONE... 4 BYNUM...CARSON...CARTER.

2

.. 3 4 -1 DENVER...ELLIS... 3 COLE...DAVIS... Tabla 8.2

Lo que se pretende es que este prefijo sea del menor tamao posible ya que recordemos que para cada nodo hoja la referencia que se tiene con el nodo superior es la llave de mayor tamao. En el ejemplo de la figura 8.8 (un prefix b+tree de orden 2) podemos ver que la llave ms grande del primer bloque sera "Berne" y el prefijo que nos sirve de separador es "Bo" de ah lo que mencionbamos de la relacin menor-mayor.

Figura 8.8 A diferencia de los rboles que hemos visto, aqu al eliminar una llave nicamente la eliminamos del nodo hoja, no se alteran los prefijos del resto del rbol. Esto facilita enormemente el proceso de eliminacin y permite que de una manera sencilla se siga aprovechando ese prefijo para las nuevas inserciones.

Figura 8.9 Por otro lado el proceso de insercin si produce las operaciones que se explicaron anteriormente, en el ejemplo podemos ver que al agrega una llave nueva, se aumenta un nuevo bloque (7) y en consecuencia se agregar un nuevo separador (AY) al index set, formando el nodo (AY,BO,CAM) lo cual resulta en una divisin del nodo, produciendo entonces (AY) (CAM) y la promocin de (BO).

Figura 8.10Finalmente una eliminacin del bloque 3 puede causar un "underflow" y en consecuencia el bloque 2 y 3 debern unirse para formar uno solo, en cuyo

caso el separador (CAM) deja de utilizarse y forza a (BO) a que baje nuevamente.

Figura 8.11 Resumiendo: Los Prefix B+ Trees se recomiendan cuando las llaves completas ocupan demasiado espacio Se podra llegar a pensar que el mantener muchos prefijos de llaves eliminadas ocupara mucho espacio pero nuevamente recordemos que estan en disco (muy barato) y que por ser prefijos su tamao es mnimo.

5. ARCHIVOS SECUENCIALES EN JAVA. Existen varias tcnicas para representar y almacenar registros llamadas organizaciones de archivos. Hay dos aspectos importantes en que difieren las organizaciones de archivos: la secuenciacin de registros y el conjunto de operaciones para manipularlos. La forma ms sencilla de almacenar un conjunto de registros en un archivo es mediante la organizacin secuencial. En este tipo de archivos, los registros son escritos consecutivamente cuando el archivo es creado, por lo tanto, deben ser accesados de ese modo cuando se consultan.

La caracterstica ms importante de esta tcnica de organizacin de archivos es que solo permite el acceso secuencial, es decir, para accesar al registro k, se deben recorrer los k-1 registros anteriores. Esta caracterstica impide que el archivo secuencial se use en procesos en lnea debido a que no se pueden consultar rpidamente los registros, sin embargo, muestra buen rendimiento en procesos en lote donde se aprovecha la capacidad para accesar al siguiente registro rpidamente. Otra ventaja de esta organizacin de archivos radica en que la direccin del registro est implcita en el sistema; es decir, no se pierden registros por la desaparicin de direcciones. La programacin orientada a objetos (POO) simula objetos reales con equivalentes de software. Utiliza las relaciones de clase en la que sus objetos tienen las mismas caractersticas, atributos y comportamientos. La clave para desarrollar sistemas utilizando los conceptos de orientacin a objetos es definir los objetos que lo forman, sus atributos, sus mtodos y crear las abstracciones apropiadas para ellos (clases), separando la implementacin interna de su comportamiento externo. La abstraccin consiste en ocultar los detalles irrelevantes del objeto, esto provoca que el usuario maneje los datos del objeto sin necesidad de conocer los detalles. La POO es una tcnica de programacin sumamente eficiente que permite dar versatilidad a los sistemas y facilitar la codificacin para los programadores. En la aplicacin de archivos secuenciales, fcilmente se pueden agregar otros archivos sin necesidad de reprogramar las subrutinas o agregar nuevos procedimientos. Para crear otros archivos secuenciales con las mismas caractersticas, basta declarar otros objetos de la misma clase con la ruta y nombre de los archivos deseados. P. ejem. Si se deseara un archivo secuencial de Secretarias y otro de Obreros, se hace la declaracin correspondiente de los objetos y se encuentran listos para ser utilizados.

Publicado por Johan Arteaga, Jose Ortiz. en 20:27

164 - Ficheros de Acceso Aleatorio

Tutorial creado por Agustn Froufe . Extraido de: http://www.publispain.com/supertutoriales/ 08 Mayo 2007

< anterior

|

1

..

162 163

164

165 166

..

194

|

siguiente >

A menudo, no se desea leer un fichero de principio a fin; sino acceder al fichero como una base de datos, donde se salta de un registro a otro; cada uno en diferentes partes del fichero. Java proporciona una clase RandomAccessFile para este tipo de entrada/salida.

==== //Creacin de un Fichero de Acceso Aleatorio// ==== Hay dos posibilidades para abrir un fichero de acceso aleatorio: Con el nombre del fichero: miRAFile = new RandomAccessFile( String nombre,String modo ); Con un objeto File: miRAFile = new RandomAccessFile( File fichero,String modo ); El argumento modo determina si se tiene acceso de slo lectura (##r##) o de lectura/escritura (##r/w##). Por ejemplo, se puede abrir un fichero de una base de datos para actualizacin: RandomAccessFile miRAFile; miRAFile = new RandomAccessFile( "/tmp/kk.dbf","rw" );

==== //Acceso a la Informacin// ==== Los objetos RandomAccessFile esperan informacin de lectura/escritura de la misma manera que los objetos DataInput/DataOutput. Se tiene acceso a todas las operaciones //read()// y //write()// de las clases DataInputStream y DataOutputStream. Tambin se tienen muchos mtodos para moverse dentro de un fichero: ##long getFilePointer();## Devuelve la posicin actual del puntero del fichero ##void seek( long pos );## Coloca el puntero del fichero en una posicin determinada. La posicin se da como un desplazamiento en bytes desde el comienzo del fichero. La posicin 0 marca el comienzo de ese fichero. ##long length();## Devuelve la longitud del fichero. La posicin //length() //marca el final de ese fichero.

==== //Actualizacin de Informacin// ==== Se pueden utilizar ficheros de acceso aleatorio para aadir informacin a ficheros existentes:

miRAFile = new RandomAccessFile( "/tmp/kk.log","rw" ); miRAFile.seek( miRAFile.length() ); // Cualquier write() que hagamos a partir de este punto del cdigo // aadir informacin al fichero Vamos a ver un pequeo ejemplo, http://www.publispain.com/supertutoriales/diseno/java/cursos/3 /Fuentes/Cap8/Log.java Log.java, que aade una cadena a un fichero existente: import java.io.*; // Cada vez que ejecutemos este programita, se incorporara una nueva // linea al fichero de log que se crea la primera vez que se ejecuta // class Log { public static void main( String args[] ) throws IOException { RandomAccessFile miRAFile; String s = "Informacion a incorporar\nTutorial de Java\n"; // Abrimos el fichero de acceso aleatorio miRAFile = new RandomAccessFile( "/tmp/java.log","rw" ); // Nos vamos al final del fichero miRAFile.seek( miRAFile.length() ); // Incorporamos la cadena al fichero miRAFile.writeBytes( s ); // Cerramos el fichero miRAFile.close(); } }

martes 29 de septiembre de 2009

TUTORIAL DE ARCHIVOS SECUENCIALES 1. Que son archivos?. 1.1 Introduccin de los archivos. 1.2 Caractersticas de archivos. 2. Definicin de archivos Secuenciales. 3. Estructura de la organizacin secuencial. 3.1 Ventajas y desventajas. 3.2 Escritura de los archivos secuenciales. 3.3 Almacenamiento de archivos Secuenciales. 4. Operacin sobre archivos secuenciales. Lectura de archivos secuenciales. 4.1 Actualizacin en archivos secuenciales. 4.2 Creacin de archivos secuenciales. 4.3 Clasificacin de archivos secuenciales. 4.4 Recuperacin de archivos secuenciales. 4.5 Consideraciones de los archivos secuenciales. 5. Archivos secuenciales en java. 6. Video archivos secuenciales. 7. Aplicacin de los archivos secuenciales. 8. Conclusiones. 9. Bibliografa.

Publicado por Johan Arteaga, Jose Ortiz. en 09:55 0 comentarios

1. QUE SON ARCHIVOS?

Los archivos tambin denominados ficheros son una coleccin de informacin (datos relacionados entre s), localizada o almacenada como una unidad en alguna parte de la computadora. Los archivos son el conjunto organizado de informaciones del mismo tipo, que pueden utilizarse en un mismo tratamiento; como soporte material de estas informaciones. 1.1. INTRODUCCIN A LOS ARCHIVOS. Los archivos como coleccin de datos sirven para la entrada y salida a la computadora y son manejados con programas. Los archivos pueden ser contrastados con Arrays y registros; Lo que resulta dinmico y por esto en un registro se deben especificar los campos, l nmero de elementos de un arrays (o arreglo), el nmero de caracteres en una cadena; por esto se denotan como "Estructuras Estticas". En los archivos no se requiere de un tamao predeterminado; esto significa que se pueden hacer archivos de datos ms grandes o pequeos, segn se necesiten. Cada archivo es referenciado por su identificador (su nombre.). 1.2. CARACTERSTICAS DE LOS ARCHIVOS. Las principales caractersticas de esta estructura son: Independencia de las informaciones respecto de los programas. La informacin almacenada es permanente. Un archivo puede ser accedido por distintos programas en distintos momentos.

Gran capacidad de almacenamiento.Publicado por Johan Arteaga, Jose Ortiz. en 09:53 0 comentarios

2. DEFINICIN DE ARCHIVOS SECUENCIALES. Es la forma bsica de organizar un conjunto de registros, que forman un archivo, utilizando una organizacin secuencial. En un archivo organizado secuencialmente, lo registros quedan grabados consecutivamente cuando el archivo se utiliza como entrada. En la mayora de los casos, los registros de un archivo secuencial quedan ordenados de acuerdo con el valor de algn campo de cada registro. Semejante archivo se dice que es un archivo ordenado; el campo, o los campos, cuyo valor se utiliza para determinar el ordenamiento es conocido como la llave del ordenamiento. Un archivo puede ordenarse ascendente o descendentemente con base en su llave de ordenamiento. La forma ms comn de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamao, constan del mismo nmero de campos de tamao fijo en un orden particular. Como se conocen la longitud y la posicin de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.

Publicado por Johan Arteaga, Jose Ortiz. en 09:52 2 comentarios

3. ESTRUCTURA DE LA ORGANIZACIN SECUENCIAL. Archivo secuencial es la forma ms simple de almacenar y recuperar registros de un archivo. En un archivo secuencial, se almacenan los registros uno tras otro. El primer registro almacenado se coloca al principio del archivo. El segundo se almacena inmediatamente despus (no existen posiciones sin uso), el tercero despus del segundo, etc. Este orden nunca cambia en la organizacin secuencial. Una caracterstica de los archivos secuenciales es que todos los registros se almacenan por posicin: de primer registro, segundo registro etc. 3.1 Ventajas y desventajas. Ventajas: Los archivos secuenciales proveen la mejor utilizacin de espacio y son rpidos cuando los registros son accesados secuencialmente. Los archivos con poca volatilidad, gran actividad y tamao variable son altamente susceptibles de ser organizados secuencialmente. La ventaja ms importante de la tcnica de organizacin secuencial de archivos es la capacidad de acceso al "siguiente" registro rpidamente: Mientras que el patrn de acceso a un archivo secuencial se conforme al ordenamiento de registros en el archivo, los tiempos de acceso sern muy buenos. Sin embargo, si el patrn de acceso al programa no se conforma al patrn de ordenamiento de los registros, entonces la eficiencia del programa puede ser terrible. Otra ventaja de los archivos de organizacin secuencial es que son muy sencillos de usar y aplicar. Desventajas: El acceso a un registro es pobre, la localizacin de un determinado registro no se puede hacer individualmente no de manera rpida, y el acceso aleatorio es imprctico.

Adems, en los archivos secuenciales la direccin de registro est implcita y estn vulnerables a fallas del sistema.

3.2 ESCRITURA DE LOS ARCHIVOS SECUENCIALES: En estos archivos, la informacin slo puede leerse y escribirse empezando desde el principio del archivo. Los archivos secuenciales tienen algunas caractersticas que hay que tener en cuenta: 1. La escritura de nuevos datos siempre se hace al final del archivo. 2. Para leer un dato concreto del archivo hay que avanzar siempre hasta donde se encuentre dicho dato. Si el dato requerido se encuentra antes del dato en que est se est posicionado el archivo en un momento dado, ser necesario regresar al comienzo del archivo y avanzar hasta el dato necesario. 3.3 Almacenamiento de archivos Secuenciales. Los archivos secuenciales pueden almacenarse en dispositivos de acceso serial o directo. Con frecuencia los dispositivos de acceso serial son considerablemente menos caros que los dispositivos de acceso directo en un sistema de cmputo, pero de hecho, los dispositivos de almacenamiento de acceso directo en una computadora siempre proporcionan mayor capacidad de almacenamiento y acceso ms rpido que los dispositivos de acceso serial.

Publicado por Johan Arteaga, Jose Ortiz. en 09:51 0 comentarios

4. OPERACIN SOBRE ARCHIVOS SECUENCIALES. Para leer un archivo secuencial, el sistema siempre comienza al principio del archivo y lee un registro a la vez hasta llegar al registro deseado. Por ejemplo si ocurre que el registro particular es el decimo en un archivo, el sistema comienza en el primer registro y lee hacia delante un registro a la vez hasta llegar al decimo. 4.1 Actualizacin en archivos secuenciales. Un archivo maestro representa el punto esttico de algn aspecto de alguna organizacin en un tiempo dado. Los cambios en la organizacin se reflejan en el archivo maestro, y para llevar a cabo la actualizacin del archivo maestro se tendrn que realizar los tipos de actualizacin: Insertar un nuevo registro. Borrar un registro. Modificar un registro.

Al estar usando un archivo secuencial como archivo maestro, el realizar las operaciones de actualizacin se llevara con el auxilio de un archivo de transacciones, debido a que se realizar el proceso en lote para que sea ms eficiente. 4.2 Creacin de archivos secuenciales. La creacin de un archivo secuencial se realiza agregando registros al final del archivo, no importa el medio de entrada de datos. El archivo

secuencial puede ser almacenado en cintas o en discos magnticos. Un archivo secuencial puede tener registros fijos o variables, la declaracin del archivo y la definicin del registro depender del lenguaje de programacin que se vaya a usar. 4.3 Clasificacin de los archivos secuenciales. Normalmente el uso de los archivos secuenciales se da en procesos en lote, donde se ha hecho notar que son eficientes cuando se llevan a cabo diversas operaciones sobre una gran cantidad de registros o de todo el archivo. Esta eficiencia se logra con una accin: la clasificacin, proceso que no es exclusivo de los archivos secuenciales, pero si necesaria para diversas operaciones. La clasificacin es el proceso de examinar los registros en un archivo y ponerlos en una secuencia ascendente o descendente basada en el valor de uno o ms campos del registro.

4.4 Recuperacin de archivos secuenciales. Como se menciono anteriormente la recuperacin de informacin de los archivos se da como consulta (modo interactivo) o como la generacin de reporte (modo lote). Tambin se indico la desventaja de acceder a un solo registro de un archivo secuencial. Es ineficiente el uso de estos archivos para realizar la consulta de un registro, pero es optimo su uso para la generacin de un reporte de

secuencia lgica en que se encuentra el archivo, el reporte podr ser de varios tipos: Selectivo. Resumen y sumarizacion. Clasificado por uno o ms campos.

4.5 Consideraciones de los archivos secuenciales. El uso ms comn para archivo secuenciales es para el procesamiento de lotes, tales como respaldo de datos, generacin de reportes, transmisin fsica de datos, etc., archivo de nomina. Ventajas: los archivos secuenciales proveen la mejor utilizacin de espacio y son rpidos cuando los registros son accesados secuencialmente. Los archivos con poca volatilidad, gran actividad y tamao variables son altamente susceptibles de ser organizados secuencialmente. Desventajas el acceso a un registro es pobre, la localizacin de un determinado registro no se puede hacer individualmente ni rpidamente, el acceso aleatorio es imprctico. El archivo a causa de inserciones y supresiones, tiene que ser reescrito peridicamente.

Publicado por Johan Arteaga, Jose Ortiz. en 09:49 0 comentarios

domingo 27 de septiembre de 2009 5. ARCHIVOS SECUENCIALES EN JAVA. Existen varias tcnicas para representar y almacenar registros llamadas organizaciones de archivos. Hay dos aspectos importantes en que difieren las organizaciones de archivos: la secuenciacin de registros y el conjunto de operaciones para manipularlos. La forma ms sencilla de almacenar un conjunto de registros en un archivo es mediante la organizacin secuencial. En este tipo de archivos, los registros son escritos consecutivamente cuando el archivo es creado, por lo tanto, deben ser accesados de ese modo cuando se consultan. La caracterstica ms importante de esta tcnica de organizacin de archivos es que solo permite el acceso secuencial, es decir, para accesar al registro k, se deben recorrer los k-1 registros anteriores. Esta caracterstica impide que el archivo secuencial se use en procesos en lnea debido a que no se pueden consultar rpidamente los registros, sin embargo, muestra buen rendimiento en procesos en lote donde se aprovecha la capacidad para accesar al siguiente registro rpidamente. Otra ventaja de esta organizacin de archivos radica en que la direccin del registro est implcita en el sistema; es decir, no se pierden registros por la desaparicin de direcciones. La programacin orientada a objetos (POO) simula objetos reales con equivalentes de software. Utiliza las relaciones de clase en la que sus objetos tienen las mismas caractersticas, atributos y comportamientos. La clave para desarrollar sistemas utilizando los conceptos de orientacin a objetos es definir los objetos que lo forman, sus atributos, sus mtodos y crear las abstracciones apropiadas para ellos (clases), separando la implementacin interna de su comportamiento externo. La abstraccin consiste en ocultar los detalles irrelevantes del objeto, esto provoca que el usuario maneje los datos del objeto sin necesidad de conocer los detalles.

La POO es una tcnica de programacin sumamente eficiente que permite dar versatilidad a los sistemas y facilitar la codificacin para los programadores. En la aplicacin de archivos secuenciales, fcilmente se pueden agregar otros archivos sin necesidad de reprogramar las subrutinas o agregar nuevos procedimientos. Para crear otros archivos secuenciales con las mismas caractersticas, basta declarar otros objetos de la misma clase con la ruta y nombre de los archivos deseados. P. ejem. Si se deseara un archivo secuencial de Secretarias y otro de Obreros, se hace la declaracin correspondiente de los objetos y se encuentran listos para ser utilizados.Publicado por Johan Arteaga, Jose Ortiz. en 20:27 1 comentarios

martes 29 de septiembre de 2009

TUTORIAL DE ARCHIVOS SECUENCIALES 1. Que son archivos?. 1.1 Introduccin de los archivos. 1.2 Caractersticas de archivos. 2. Definicin de archivos Secuenciales. 3. Estructura de la organizacin secuencial.

3.1 Ventajas y desventajas. 3.2 Escritura de los archivos secuenciales. 3.3 Almacenamiento de archivos Secuenciales. 4. Operacin sobre archivos secuenciales. Lectura de archivos secuenciales. 4.1 Actualizacin en archivos secuenciales. 4.2 Creacin de archivos secuenciales. 4.3 Clasificacin de archivos secuenciales. 4.4 Recuperacin de archivos secuenciales. 4.5 Consideraciones de los archivos secuenciales. 5. Archivos secuenciales en java. 6. Video archivos secuenciales. 7. Aplicacin de los archivos secuenciales. 8. Conclusiones. 9. Bibliografa.Publicado por Johan Arteaga, Jose Ortiz. en 09:55 0 comentarios

1. QUE SON ARCHIVOS?

Los archivos tambin denominados ficheros son una coleccin de informacin (datos relacionados entre s), localizada o almacenada como una unidad en alguna parte de la computadora. Los archivos son el conjunto organizado de informaciones del mismo tipo, que pueden utilizarse en un mismo tratamiento; como soporte material de estas informaciones. 1.1. INTRODUCCIN A LOS ARCHIVOS. Los archivos como coleccin de datos sirven para la entrada y salida a la computadora y son manejados con programas. Los archivos pueden ser

contrastados con Arrays y registros; Lo que resulta dinmico y por esto en un registro se deben especificar los campos, l nmero de elementos de un arrays (o arreglo), el nmero de caracteres en una cadena; por esto se denotan como "Estructuras Estticas". En los archivos no se requiere de un tamao predeterminado; esto significa que se pueden hacer archivos de datos ms grandes o pequeos, segn se necesiten. Cada archivo es referenciado por su identificador (su nombre.). 1.2. CARACTERSTICAS DE LOS ARCHIVOS. Las principales caractersticas de esta estructura son: Independencia de las informaciones respecto de los programas. La informacin almacenada es permanente. Un archivo puede ser accedido por distintos programas en distintos momentos. Gran capacidad de almacenamiento.Publicado por Johan Arteaga, Jose Ortiz. en 09:53 0 comentarios

2. DEFINICIN DE ARCHIVOS SECUENCIALES. Es la forma bsica de organizar un conjunto de registros, que forman un archivo, utilizando una organizacin secuencial. En un archivo organizado secuencialmente, lo registros quedan grabados consecutivamente cuando el archivo se utiliza como entrada. En la mayora de los casos, los registros de un archivo secuencial quedan ordenados de acuerdo con el valor de algn campo de cada registro. Semejante archivo se dice que es un archivo ordenado; el campo, o los campos, cuyo valor se utiliza para determinar el ordenamiento es conocido como la llave del ordenamiento. Un archivo puede ordenarse ascendente o descendentemente con base en su llave de ordenamiento. La forma ms comn de estructura de archivo es el archivo secuencial. En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamao, constan del mismo nmero de campos de tamao fijo en un orden particular. Como se conocen la longitud y la posicin de cada campo, solamente los valores de los campos se necesitan almacenarse; el nombre del campo y longitud de cada campo son atributos de la estructura de archivos.

Publicado por Johan Arteaga, Jose Ortiz. en 09:52 2 comentarios

3. ESTRUCTURA DE LA ORGANIZACIN SECUENCIAL. Archivo secuencial es la forma ms simple de almacenar y recuperar registros de un archivo. En un archivo secuencial, se almacenan los registros uno tras otro. El primer registro almacenado se coloca al principio del archivo. El segundo se almacena inmediatamente despus (no existen posiciones sin uso), el tercero despus del segundo, etc. Este orden nunca cambia en la organizacin secuencial. Una caracterstica de los archivos secuenciales es que todos los registros se almacenan por posicin: de primer registro, segundo registro etc. 3.1 Ventajas y desventajas. Ventajas: Los archivos secuenciales proveen la mejor utilizacin de espacio y son rpidos cuando los registros son accesados secuencialmente. Los archivos con poca volatilidad, gran actividad y tamao variable son altamente susceptibles de ser organizados secuencialmente. La ventaja ms importante de la tcnica de organizacin secuencial de

archivos es la capacidad de acceso al "siguiente" registro rpidamente: Mientras que el patrn de acceso a un archivo secuencial se conforme al ordenamiento de registros en el archivo, los tiempos de acceso sern muy buenos. Sin embargo, si el patrn de acceso al programa no se conforma al patrn de ordenamiento de los registros, entonces la eficiencia del programa puede ser terrible. Otra ventaja de los archivos de organizacin secuencial es que son muy sencillos de usar y aplicar. Desventajas: El acceso a un registro es pobre, la localizacin de un determinado registro no se puede hacer individualmente no de manera rpida, y el acceso aleatorio es imprctico. Adems, en los archivos secuenciales la direccin de registro est implcita y estn vulnerables a fallas del sistema.

3.2 ESCRITURA DE LOS ARCHIVOS SECUENCIALES: En estos archivos, la informacin slo puede leerse y escribirse empezando desde el principio del archivo. Los archivos secuenciales tienen algunas caractersticas que hay que tener en cuenta: 1. La escritura de nuevos datos siempre se hace al final del archivo. 2. Para leer un dato concreto del archivo hay que avanzar siempre hasta

donde se encuentre dicho dato. Si el dato requerido se encuentra antes del dato en que est se est posicionado el archivo en un momento dado, ser necesario regresar al comienzo del archivo y avanzar hasta el dato necesario. 3.3 Almacenamiento de archivos Secuenciales. Los archivos secuenciales pueden almacenarse en dispositivos de acceso serial o directo. Con frecuencia los dispositivos de acceso serial son considerablemente menos caros que los dispositivos de acceso directo en un sistema de cmputo, pero de hecho, los dispositivos de almacenamiento de acceso directo en una computadora siempre proporcionan mayor capacidad de almacenamiento y acceso ms rpido que los dispositivos de acceso serial.

Publicado por Johan Arteaga, Jose Ortiz. en 09:51 0 comentarios

4. OPERACIN SOBRE ARCHIVOS SECUENCIALES. Para leer un archivo secuencial, el sistema siempre comienza al principio del archivo y lee un registro a la vez hasta llegar al registro deseado. Por ejemplo si ocurre que el registro particular es el decimo en un archivo, el sistema comienza en el primer registro y lee hacia delante un registro a la vez hasta llegar al decimo. 4.1 Actualizacin en archivos secuenciales. Un archivo maestro representa el punto esttico de algn aspecto de alguna organizacin en un tiempo dado. Los cambios en la organizacin se reflejan

en el archivo maestro, y para llevar a cabo la actualizacin del archivo maestro se tendrn que realizar los tipos de actualizacin: Insertar un nuevo registro. Borrar un registro. Modificar un registro.

Al estar usando un archivo secuencial como archivo maestro, el realizar las operaciones de actualizacin se llevara con el auxilio de un archivo de transacciones, debido a que se realizar el proceso en lote para que sea ms eficiente. 4.2 Creacin de archivos secuenciales. La creacin de un archivo secuencial se realiza agregando registros al final del archivo, no importa el medio de entrada de datos. El archivo secuencial puede ser almacenado en cintas o en discos magnticos. Un archivo secuencial puede tener registros fijos o variables, la declaracin del archivo y la definicin del registro depender del lenguaje de programacin que se vaya a usar. 4.3 Clasificacin de los archivos secuenciales. Normalmente el uso de los archivos secuenciales se da en procesos en lote, donde se ha hecho notar que son eficientes cuando se llevan a cabo diversas operaciones sobre una gran cantidad de registros o de todo el archivo. Esta eficiencia se logra con una accin: la clasificacin, proceso que no es exclusivo de los archivos secuenciales, pero si necesaria para diversas operaciones. La clasificacin es el proceso de examinar los registros en un archivo y ponerlos en una secuencia ascendente o descendente basada en el valor de uno o ms campos del registro.

4.4 Recuperacin de archivos secuenciales. Como se menciono anteriormente la recuperacin de informacin de los archivos se da como consulta (modo interactivo) o como la generacin de reporte (modo lote). Tambin se indico la desventaja de acceder a un solo registro de un archivo secuencial. Es ineficiente el uso de estos archivos para realizar la consulta de un registro, pero es optimo su uso para la generacin de un reporte de secuencia lgica en que se encuentra el archivo, el reporte podr ser de varios tipos: Selectivo. Resumen y sumarizacion. Clasificado por uno o ms campos.

4.5 Consideraciones de los archivos secuenciales. El uso ms comn para archivo secuenciales es para el procesamiento de lotes, tales como respaldo de datos, generacin de reportes, transmisin fsica de datos, etc., archivo de nomina. Ventajas: los archivos secuenciales proveen la mejor utilizacin de espacio y son rpidos cuando los registros son accesados secuencialmente.

Los archivos con poca volatilidad, gran actividad y tamao variables son altamente susceptibles de ser organizados secuencialmente. Desventajas el acceso a un registro es pobre, la localizacin de un determinado registro no se puede hacer individualmente ni rpidamente, el acceso aleatorio es imprctico. El archivo a causa de inserciones y supresiones, tiene que ser reescrito peridicamente.

Publicado por Johan Arteaga, Jose Ortiz. en 09:49 0 comentarios

domingo 27 de septiembre de 2009 5. ARCHIVOS SECUENCIALES EN JAVA. Existen varias tcnicas para representar y almacenar registros llamadas organizaciones de archivos. Hay dos aspectos importantes en que difieren las organizaciones de archivos: la secuenciacin de registros y el conjunto de operaciones para manipularlos. La forma ms sencilla de almacenar un conjunto de registros en un archivo es mediante la organizacin secuencial. En este tipo de archivos, los registros son escritos consecutivamente cuando el archivo es creado, por lo tanto, deben ser accesados de ese modo cuando se consultan. La caracterstica ms importante de esta tcnica de organizacin de archivos es que solo permite el acceso secuencial, es decir, para accesar al

registro k, se deben recorrer los k-1 registros anteriores. Esta caracterstica impide que el archivo secuencial se use en procesos en lnea debido a que no se pueden consultar rpidamente los registros, sin embargo, muestra buen rendimiento en procesos en lote donde se aprovecha la capacidad para accesar al siguiente registro rpidamente. Otra ventaja de esta organizacin de archivos radica en que la direccin del registro est implcita en el sistema; es decir, no se pierden registros por la desaparicin de direcciones. La programacin orientada a objetos (POO) simula objetos reales con equivalentes de software. Utiliza las relaciones de clase en la que sus objetos tienen las mismas caractersticas, atributos y comportamientos. La clave para desarrollar sistemas utilizando los conceptos de orientacin a objetos es definir los objetos que lo forman, sus atributos, sus mtodos y crear las abstr