You are on page 1of 12

Instituto Tecnolgico Superior de Lerdo

Administracin & organizacin de datos

Ana Karen Ibarra Cital

Ingeniera Informtica 4A

Los archivos secuenciales disponen de una serie de caractersticas que no los habilitan para el uso diario en una aplicacin, pero sin embargo por sus caractersticas permiten que sean usados en temas muy concretos:

Trasvase de datos entre empresas. Almacenamientos de datos para tablas de una aplicacin. Guardar datos de configuracin.

Utilizacin
Un archivo secuencial, es un archivo que tiene muchas utilizaciones. Cualquier archivo de imagen, sonido, o similares, son archivos que poseen una estructura, una cabecera, y una serie de datos que se leen posteriormente o bien en bloque o de forma secuencial. Basta solo ver las definiciones de las estructuras de los archivos mencionados, para poder entender lo dicho anteriormente. Estos archivos son muy compactos. Un archivo secuencial, al igual que los random y las bases de datos, necesita de ser actualizado. Los que contienen sonido, vdeo e imgenes no necesitan de estos procesos, pero los que almacenan datos s. A pesar de ser archivos que no son habituales en un proceso de gestin, sin embargo surge la necesidad de su utilizacin en algunas ocasiones, o en muchas. Dado que no es un archivo direccionable, el proceso de actualizacin se basa siempre en un proceso de emparejamiento de registros de dos archivos secuenciales, de entrada que da uno nuevo de salida.

El que contiene los datos actuales. El que contiene los nuevos datos.

Sintaxis en C#
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(); } } }

JAVA Existen muchas operaciones asociadas a archivos, las ms 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 est realizando por los programas especializados en algn proceso. 3.-Cierre de archivos: Es la operacin ms importante en cualquier programa que maneje archivos, o se cierra el archivo como ultima instruccin del programa o se ver el anuncio ABORT, RETRY ,FAIL. 98, /s, scandisk 4.-Altas en archivo.- En este proceso se carga una clase en memoria con sus 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 ms comunes, consiste en que el usuario pide toda la informacin de algn rengln en disco, proporcionando la informacin de algn campo, generalmente el campo clave de la clase. 8.- Filtros.- En este proceso el usuario est interesado en algn conjunto de renglones con caractersticas comunes (condicin), por ejemplo todos los alumnos de sis JAVA TEMA s, o todos los empleados que ganen ms de $500.00 pesos, o todos los clientes que sean de Tijuana, etc.

9.-Modificaciones de registros o archivos: Problema muy comn, 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: tambin muy comn este proceso, por ejemplo el alumno ya egreso, el cliente huyo, etc. Usando archivos secuenciales en Java Con este programa, se creara un archivo con registros de nmero de matrcula, nombre y pedir 3 calificaciones para despus calcular el promedio. import java.io.*; import java.util.Scanner; public class Archivos{ public static void main( String args[] )throws IOException{ Scanner leer = new Scanner(System.in); DataOutputStream Archi = null; int i; int matricula=0; String nombre=new String(); int calif1; int calif2; int calif3; double promedio; try{ for (i=0; i<5; i++){ Archi = new DataOutputStream( new FileOutputStream(../Archivo.dat,true) ); System.out.println(Escribe la matricula: ); matricula = leer.nextInt(); System.out.println(Escribe Nombre: ); nombre = leer.next(); System.out.println(Ingrese Calificacion 1: ); calif1 = leer.nextInt(); System.out.println(Ingrese Califiacin 2); calif2 = leer.nextInt(); System.out.println(Ingrese Calificacion 3); calif3 = leer.nextInt(); Archi.writeInt(matricula); Archi.writeUTF(nombre); Archi.writeInt(calif1);

Archi.writeInt(calif2); Archi.writeInt(calif3); Archi.close(); } } catch(FileNotFoundException fnfe) {} catch (IOException ioe) {} } } Este otro mostrara lo que hay en el archivo: import java.io.*; public class LeerArchivos{ public static void main( String args[] )throws IOException{ DataInputStream Archi = null; int matricula=0; String nombre=new String(); int calif1; int calif2; int calif3; double promedio; try{ Archi = new DataInputStream( new FileInputStream(../Archivo.dat) ); while (true){ matricula = Archi.readInt(); System.out.println(Matricula: +matricula+ ); nombre = Archi.readUTF(); System.out.println(Nombre: +nombre+ ); calif1= Archi.readInt(); System.out.println(Calificacion 1: +calif1+ ); calif2= Archi.readInt(); System.out.println(Calificacion 2: +calif2+ ); calif3= Archi.readInt(); System.out.println(Calificacion 3: +calif3+ ); System.out.println(n); int suma = calif1 + calif2 + calif3; promedio = suma/3; System.out.println(El promedio es: +promedio+n); } }

catch(FileNotFoundException fnfe) {} catch (IOException ioe) {} Archi.close(); } } Manejo de archivos en PHP Hasta el momento almacenamos datos en constantes, variables y arreglos este almacenamiento es temporal y se pierde cuando termina la ejecucin del programa. La solucin computacional es almacenar dichos datos en una fuente de almacenamiento secundario como por ejemplo un disco duro o pendrive entre otros medios a fin de que persistan aun despus de la ejecucin del programa que los crea y puedan ser usados inclusive por otros programas. Para lograr esto los datos se almacenan en un recipiente llamado archivo, el procesamiento de archivos es una herramienta invaluable de programacin. Existen diversos tipos de archivos y su descripcin escapa del alcance de este curso. Sin embargo, mis caros y estimados lectores simplemente cualquier cosa almacena en su disco duro o en su pendrive es un archivo. Los archivos que PHP pueden ser secuenciales y binarios. Los archivos secuenciales son archivos de texto y los binarios pueden almacenar grficos y diversos formatos de informacin. Bsicamente responden a las siguientes operaciones bsicas:

abrir borrar cerrar copiar escribir leer renombrar

Desde las operaciones bsicas como copiar, mover y eliminar, hasta operaciones que exigen una cierta complejidad son requeridas para la configuracin de pginas Web.

Leer el contenido del archivo, tarea que llevaremos a cabo por medio de la funcin fgets. Esta funcin se encarga de leer lnea a lnea el contenido de un archivo texto por lo que su utilizacin ha de ser incluida dentro de una estructura de tipo bucle. En el ejemplo que mostramos a continuacin nos hemos servido de esta lectura secuencial para localizar dentro del texto una cadena cualquiera a la que, a continuacin, le cambiamos el formato para ponerla en negrita por medio de la etiqueta <b>. Esto nos puede resultar til si llevamos a cabo bsquedas internas en nuestro sitio y queremos resaltar la cadena de bsqueda en el texto de la pgina encontrada. Evidentemente, la utilidad de fgets resulta ser mucho ms amplia. Podemos emplearla, por ejemplo, con archivos remotos para extraer las etiquetas meta o para muchas otras cosas que se nos puedan ocurrir. Aqu os proponemos el script: <? function negrita($path,$cadena) { //Iniciamos la variable $texto = ""; //Abrimos el archivo en modo lectura $fp = fopen($path,"r"); //Leemos linea por linea el contenido del archivo while ($linea= fgets($fp,1024)) { //Sustituimos las ocurrencias de la cadena que buscamos $linea = str_replace($cadena,"<b>$cadena</b>",$linea); //Anadimos la linea modificada al texto $texto .= $linea; } return $texto; } //Definimos el path y la cadena $path="escribe el camino de acceso a tu archivo"; $cadena = "escribe tu cadena"; //Llamamos la funcion $texto = negrita ($path,$cadena); //Mostramos el texto echo $texto; ?>

XML

< xml="true" ns="urn:schemas-microsoft-com: office:office" prefix="o" namespace=""> Los archivos secuenciales se denominan de esta manera por que la forma de escribir y leer los datos en un archivo es, desde el principio hasta el fin del archivo, es decir, si yo quisiera acceder a un determinado dato del archivo y este dato se encuentra en la mitad del archivo, para llegar a ese dato necesito pasar por todos los dems datos, de forma secuencial. Por lo general se suelen utilizar los archivos secuenciales, para trabajar con archivos que contengan una estructura de datos no muy compleja. Append: esta sentencia se utiliza para agregar informacin a un archivo de texto. Input: la sentencia Input se utiliza para leer datos de un archivo de texto, lee todo el contenido del archivo de una sola vez. Output: esta sentencia se utiliza para crear un archivo de texto y grabar datos. Sentencia Write: escribe datos en un archivo separados por comas. Line Input: lee un archivo de texto lnea por lnea. Print: para escribir datos en archivos de texto.tos en archivos de texto. Public Funtion Contar_Lineas (ByVal srtTextFile As string) As Long< xml="true" ns="urn:schemas-microsoft-com:office:office" prefix="o" namespace=""> Dim f As Integer Dim lineas As Long Dim srt_Linea As String Numero de archive libre F = FreeFile Abre el archive de texto linea por linea hasta el final Do Lee una linea Line input #f, srt_linea Incrementa la cantidad de lineas leidas Lineas = lineas + 1 Leera hasta que llegue al fin de archivo Loop While not EOF(F) Cierra el archive de texto abierto Close #f

Retorna a la funcion el numero de lineas del fichero Contar_lineas = lineas End Function Private Sub Command1_Click( ) Dim Path As String Path = InputBox(Ingrese la ruta de un archivo de texto,_contar lineas) If Path = vbNullString Then Exit sub MsgBox cantidad de lineas : & contra_lineas(path) End Sub Delphi El procesamiento de datos implica con frecuencia el almacenamiento y manipulacin de estos en ficheros, trmino que hace referencia a una coleccin de datos del mismo tipo que pueden ser almacenados en un dispositivo auxiliar de almacenamiento y a los que podemos acceder cuando sea necesario. En Delphi los ficheros pueden ser de dos tipos: ficheros en formato ASCII o ficheros en formato binario y pueden, a su vez, organizarse de dos formas diferentes: en forma secuencial o en forma indexada. En un fichero secuencial todos los componentes del fichero se almacenan secuencialmente uno despus del otro. Cdigo:
procedure TForm1.FormCreate(Sender: TObject); begin stringgrid1.ColCount:= 17; stringgrid1.RowCount:= 5; stringgrid1.DefaultColWidth:=32; stringgrid1.DefaultRowHeight:=16; stringgrid1.Cells[0,0]:='Offset'; stringgrid1.Cells[1,0]:='0'; stringgrid1.Cells[2,0]:='1'; stringgrid1.Cells[3,0]:='2'; stringgrid1.Cells[4,0]:='3'; stringgrid1.Cells[5,0]:='4'; stringgrid1.Cells[6,0]:='5'; stringgrid1.Cells[7,0]:='6'; stringgrid1.Cells[8,0]:='7'; stringgrid1.Cells[9,0]:='8'; stringgrid1.Cells[10,0]:='9';

stringgrid1.Cells[11,0]:='A'; stringgrid1.Cells[12,0]:='B'; stringgrid1.Cells[13,0]:='C'; stringgrid1.Cells[14,0]:='D'; stringgrid1.Cells[15,0]:='E'; stringgrid1.Cells[16,0]:='F'; stringgrid1.Cells[0,1]:='$00'; stringgrid1.Cells[0,2]:='$10'; stringgrid1.Cells[0,3]:='$20'; stringgrid1.Cells[0,4]:='$30'; // MyHex := inttohex(255,2); end; function TForm1.HexToInt(Value: String): Integer; begin Result := StrToInt('$' + Value); end; procedure TForm1.savebin_buttonClick(Sender: TObject); //Boton Crear fichero Bin con filtro .bin begin savedialog1.InitialDir := getcurrentdir; savedialog1.Filter := 'ARCHIVO BIN|*.bin'; savedialog1.Execute; if savedialog1.FileName <> '' then savebin(savedialog1.FileName); end; Procedure TForm1.Savebin(sFilename : String); var byteArray : array[1..16] of byte; I, J, K, dato_bin : Integer; hFile : File; begin Assignfile(hFile, sFileName); rewrite(hFile, 16); //Usamos bloques de 16 bytes with StringGrid1 do for I := 1 to RowCount - 1 do begin K := 1; for J:= 1 to ColCount - 1 do begin dato_bin:=hextoint(Cells[J,I]); bytearray[K]:= dato_bin; //cargamos 16 bytes en el array K:=K+1; end; blockwrite(hfile,bytearray,1); // Escribe bloque de 16 bytes end; CloseFile(hFile); End;

procedure TForm1.openBinClick(Sender: TObject); //Boton Guardar fichero Bin con filtro .bin

begin opendialog1.InitialDir := getcurrentdir; opendialog1.Filter := 'ARCHIVO BIN|*.bin'; opendialog1.Execute; if opendialog1.FileName<>'' then loadbin(opendialog1.FileName); end; procedure TForm1.loadbin( Nom_Fichero:string); var Fichero:file; I, J: Integer; dato_bin : array[1..16] of byte; begin assignfile(fichero, Nom_Fichero); reset(fichero,16); //Cargamos 16 bytes de cada vez ( 1 fila ) with StringGrid1 do for I := 1 to RowCount - 1 do begin blockread(fichero,dato_bin,1); //Lee 1 bloque de 16 bytes for J:= 1 to ColCount - 1 do begin Cells[J,I]:= inttohex(dato_bin[J],2); //Pone 16 bytes en la fila end; end; closefile(fichero); end; end.

You might also like