Resumen Archivos Secuenciales

Embed Size (px)

Citation preview

INSTITUTO TECNOLGICO SUPERIOR DE LERDO Said Alejandro Ramrez Peralta Administracin y Organizacin de Datos Ing. Informtica No. Control: 10231395 17/febrero/2012 Archivos Secuenciales: Es la forma ms simple de almacenar y recuperar registros en 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. Lenguaje de Programacin Un lenguaje de programacin es un idioma artificial diseado para expresar computaciones que pueden ser llevadas a cabo por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana. Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin. Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa. C# Es un lenguaje de programacin orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que despus fue aprobado como un estndar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programacin diseados para la infraestructura de lenguaje comn. Utilizacin de archivos secuenciales Un archivo o un fichero es una coleccin de informacin que almacenamos en un soporte magntico para poderla manipular en cualquier momento. Esta informacin se almacena como un conjunto de registros, los cuales contienen, generalmente, los mismos campos. Cada campo almacena un dato de un tipo predefinido o de un tipo definido por el usuario. Un ejemplo seria, si quisiramos almacenar en un fichero los datos relativos a la agenda de telfonos, podramos disear cada registro con los campos nombre, direccin y telfono. Cada campo almacenara el dato correspondiente. El conjunto de campos descritos forma lo que hemos denominado registro, y el conjunto de todos los registros forma un archivo que almacenamos. Entonces para manipular un archivo que identificamos por un nombre, son tres: abrir el fichero, escribir o leer registros del fichero y cerrar el fichero. Podemos agrupar los archivos en dos tipos: de la aplicacin y de datos, y adems ofrece dos tipos diferentes de acceso a los archivos de datos: secuencial y aleatorio. Para dar soporte a los archivos la biblioteca de C# proporciona varias clases de entrada y salida que permiten leer y escribir datos desde archivos y dispositivos. Abriendo ficheros para acceso secuencial El tipo de acceso simple a un archivo de datos es el secuencial, un archivo abierto para esta es un archivo que puede almacenar registros de cualquier longitud. Cuando la informacin se escribe registro a registro, estos son colocados de uno en uno y cuando se leen se empieza por el primero y se contina hasta el ltimo. Este acceso utiliza dos archivos de texto en los que se escribe informacin desde el principio hasta el final y se lee igual que el secuencial. En cambio los archivos de texto no son los mas apropiados para almacenar grandes series de nmeros porque cada numero es almacenado como una secuencia byte. Flujo de bytes Los datos puede ser escritos o ledos de un fichero byte a byte usando el FileStream: Este flujo permite leer y escribir bytes en un fichero. Esta clase aparte de los mtodos heredados de la clase Stream proporciona los constructores siguientes: FileStream(string nombre, FileMode modo) FileStream(string nombre, FileMode modo, FileAccess acceso) El primer constructor abre un flujo de entrada y salida vinculado con el fichero especificado por nombre, mientras el segundo hace lo mismo, pero con la posibilidad de especificar el tipo de acceso. El parmetro nombre es una cadena de caracteres que especifica la ruta donde esta guardando o se guardara el archivo. Esta cadena se escribe de dos maneras: c:\\temp\\doc.txt @c:\temp\doc.txt (la ventaja de usar @ y comillas es que las secuencias de escape no se procesan) Flujo de caracteres Los datos pueden ser escritos o leidos de un fichero carcter a carcter en un formato portable utilizando flujos de las clases StreamWriter y StreamReader, subclases de TextWriter y TextReader, respectivamente. StreamWriter Permite escribir caracteres en un fichero, adems de los mtodos heredados de la clase TextWriter, proporciona los constructores siguientes: StreamWriter(string nombre) StreamWriter(Stream flujo)) El primer constructor abre un flujo de salida hacia el fichero especificado por nombre, mientras que el segundo hace lo mismo, pero desde otro flujo existente de la clase Stream o de sus derivadas. StreamReader Permite leer caracteres desde un fichero. Esta clase, adems de los mtodos que hereda de la clase TextReader, proporciona los constructores siguientes: StreamReader(string nombre) StreamReader(Stream Flujo) El primer constructor abre un flujo de entrada desde el fichero especificado por nombre, mientras que el segundo hace lo mismo, pero desde otro flujo existente de la clase Stream o de sus derivadas. Clases File, Directory y Path Estas soportan la manipulacin del nombre de un fichero o de un directorio que puede existir en el sistema de ficheros de la mquina, sus mtodos permitirn interrogar al sistema sobre las caractersticas de ese fichero o directorio. Todos los mtodos son static para poder ser invocados sin necesidad de que exista un objeto de ellas. Para referirnos a un fichero o directorio, lo mas sencillo es formar un string a partir de su nombre al que podremos aadir opcionalmente su ruta de acceso. c:\\MiDir\\MiFichero.txt @c:\MiDir\MiFichero.txt @c:\MiDir MiDir\\MiSubDir\\MiFichero.txt @MiDir\MiSubDir\MiFichero.txt @MiDir\MiSubDir MiFichero.txt \\\\MiServidor\\MiDirCompartido\\MiFichero.txt Flujos de datos de tipos primitivosMuchas aplicaciones requieren escribir en un fichero datos de tipos primitivos no como cadenas de caracteres sino formato binario para posteriormente recuperarlos. Para estos casos, el espacio de nombre System.IO proporciona las clases BinaryReader y BinaryWriter, las cuales permiten leer y escribir, respectivamente, datos de cualquier tipo primitivo en formato binario y cadenas de caracteres en formato UTF-8. Un flujo BinaryReader solo puede leer datos almacenados en un fichero a travs de un flujo BinaryWriter. BinaryWriter Un flujo de la clase BinaryWriter permite a una aplicacin escribir datos de cualquier tipo primitivo. Se puede crear un flujo de esta clase utilizando el siguiente constructor: BinaryWriter(Stream Flujo) Este constructor abre un flujo de salida (para escribir) hacia el fichero vinculado con otro flujo existente de la clase Stream o de sus derivadas. BinaryReader Un flujo de la clase BinaryReader permite a una aplicacin escribir datos de cualquier tipo primitivo escritos por un flujo de la clase BinaryWriter. Se puede crear un flujo de esta clase utilizando el siguiente constructor: BinaryReader(Stream Flujo) Este constructor abre un flujo de salida (para leer) hacia el fichero vinculado con otro flujo existente de la clase Stream o de sus derivadas. Sintaxis Bsica using System; using System.Text; using System.IO; namespace Test_TextFiles { class Program { static void Main(string[] args) { try { TextReader trs = new StreamReader(@"C:\test.txt"); //Lectura de todo el texto del archivo //Console.WriteLine(trs.ReadToEnd()); //o lectura secuencial while (trs.Peek()>=0 ) { Console.WriteLine(trs.ReadLine()); } trs.Close(); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("Presione cualquier tecla para continuar..."); Console.ReadKey(); } } } PHP es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. Se usa principalmente para la interpretacin del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt o GTK+. Utilizacin de Archivos Secuenciales Sintaxis Bsica Java Es un lenguaje de programacin orientado a objetos, desarrollado por Sun Microsystems a principios de los aos 90. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria.Con respecto a la memoria, su gestin no es un problema ya que sta es gestionada por el propio lenguaje y no por el programador. Las aplicaciones Java estn tpicamente compiladas en un bytecode, aunque la compilacin en cdigo mquina nativo tambin es posible. En el tiempo de ejecucin, el bytecode es normalmente interpretado o compilado a cdigo nativo para la ejecucin, aunque la ejecucin directa por hardware delbytecode por un procesador Java tambin es posible. La implementacin original y de referencia del compilador, la mquina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolucin del lenguaje a travs del Java Community Process, si bien otros han desarrollado tambin implementaciones alternativas de estas tecnologas de Sun, algunas incluso bajo licencias de software libre. Utilizacin de Archivos Secuenciales Existen muchas operaciones asociadas a archivos, las mas elementales son: 1.- Creacin de Archivo.- En este proceso se pretende solamente crear un archivo nuevo en disco, con su nombre, tipo y especialidad de almacenamiento de datos apropiado. 2.- Apertura de Archivos.- En este caso se pretende abrir un archivo ya existente en disco para procesarlo, ya sea cargar o grabar datos en sus registros, o leer algun registro en especial para mandarlo a una variable de cualquier tipo. No confundir creacin con apertura, creacin es un proceso que solo se ejecuta una sola vez en la vida de un archivo, mientras que apertura, siempre se esta realizando por los programas especializados en algun proceso. 3.-Cierre de archivos: Es la operacin mas importante en cualquier programa que maneje archivos, o se cierra el archivo como ultima instruccin del pograma o se vera el anuncio ABORT,RETRY,FAIL. 98, /s, scandisk 4.-Altasenarchivo.-Enesteprocesosecargaunaclaseenmemoriaconsus datos pertinentes y se graba la clase en el archivo en disco. 5.-Lectura de archivo.- En este proceso, se abre el archivo y se manda el registro de disco, a una clase en memoria para su procesamiento. 6.- Consulta de archivos: En este proceso se pretende desplegar todos los registros del archivo en disco a la pantalla, ya sea consola o mejor an, a una pagina html 7.-Busqueda en archivos: Una de las operaciones mas comunes, consiste en que el usuario pide toda la informacin de algun renglon en disco, porporcionando la informacin dealgun campo, generalmente el campo clave de la clase. 8.- Filtros.- En este proceso el usuario esta interesado en algun conjunto de renglones con caracteristicas comunes (condicin), por ejemplo todos los alumnos de sisJAVATEMA s, o todos los empleados que ganen mas de $500.00 pesos, o todos los clientes que sean de tijuana, etc 9.-Modificaciones de registros o archivos: Problema muy comun, donde los datos originales ya grabados se tienen que cambiar o actualizar, por ejemplo el nombre no era juan es juana, o la calificacin no es 100 es 20, etc. 10.- Bajas de registros: tambien muy comun este proceso,por ejemplo el alumno ya egreso, el cliente huyo, etc. Sintaxis Bsica lmport |uvu.lo.*; lmport |uvu.utll.Scunner; publlc cluss Archlvos{ publlc stutlc vold muln( Strlng urgs[] )throws IOExceptlon{ Scunner leer = new Scunner(System.ln); DutuOutputStreum Archl = null; lnt l; lnt mutrlculu=0; Strlng nombre=new Strlng(); lnt cullf1; lnt cullf2; lnt cullf3; double promedlo; try{ for (l=0; l