Sei sulla pagina 1di 24

INSTITUTO TECNOLOGICO SUPERIOR DE LERDO

Nombre: Sergio Ivan Hernandez Tijerina No Control: 10231137 Materia: Administracin y organizacin de datos Actividad: Resumen sobre manejo de archivos secuenciales

Manejo de Archivos Secuenciales Realizar una investigacin sobre el manejo de archivos secuenciales en los siguientes lenguajes de programacin: C# PHP JAVA XML Delphi XE XE2 FLEX

Acontinuacion se muestran los ejemplos encontrados sobre: Creacin, lectura, busqueda, eliminacion de archivos secuenciales en los lenguajes anteriormente mencionados

C#
Creacin
OpenFileDialog dlgopen = new OpenFileDialog(); dlgopen.CheckFileExists = false; if ((dlgopen.ShowDialog() == Windows.Forms.DialogResult.OK)) { // creamos flujo FileStream flujoopen= new FileStream(dlgopen.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite); BinaryReader leerfile = new BinaryReader(flujoopen); archivo = dlgopen.FileName; // leemos if ((leerfile.PeekChar != -1)) { // si si existe texto // obtenemos total de registros registro = ((int)(Math.Ceiling((flujoopen.Length/70)))); int a; for (a = 0; (a <= (registro - 1)); a++){ leerfile.BaseStream.Seek((70 * a),SeekOrigin.Begin); //70 bytes de largo por cada registro vdatos[a].numtra = leerfile.ReadInt32.ToString; vdatos[a].nombre = leerfile.ReadString.ToString; vdatos[a].dep = leerfile.ReadString.ToString; vdatos(a).salario = leerfile.ReadSingle.ToString; } mnunuevo.Enabled = true; verregistro(0); // habilitamos menus de navegacion respecto a la posicion actual if((registro > 1)) { // si hay mas de un registro if ((registronow == (registro - 1))) { // si esta en la ultima posicion mnuanterior.Enabled = true; mnuprimero.Enabled = true; } else if ((registronow == 0)) { // si esta en la primer posicion mnuultimo.Enabled = true; mnusiguiente.Enabled = true; } else { // si cae aki esporke es un registro de en medio mnuanterior.Enabled = true; mnuprimero.Enabled = true; mnuultimo.Enabled = true; mnusiguiente.Enabled = true; }

} } else { mnunuevo.Enabled = true; sblabel.Text = "Sin registros"; txtnumtra.Text = ""; txtnombre.Text = ""; txtdep.Text = ""; txtsalario.Text = ""; registro = 0; // inicializamos los registros } GuardarToolStripMenuItem.Enabled = true; leerfile.Close(); flujoopen.Close(); // ponemos nombre de archivo lblfile.Text = Path.GetFileName(dlgopen.FileName); txtnumtra.Focus(); }

Lectura
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
Creacin
<HTML> <FORM ACTION=prog19.php METHOD=post> CLAVE:<INPUT TYPE=text NAME=CLAVE><BR>

NOMBRE:<INPUT TYPE=text NAME=NOMBRE><BR>

EDAD:<INPUT TYPE=text NAME=EDAD><BR>

ESTATURA:<INPUT TYPE=text NAME=ESTATURA><BR>

<INPUT TYPE=submit NAME=OK VALUE="insertar"><BR>

</FORM></HTML>

<?php if ($OK == "insertar") {

// creando y abriendo archivo

$archivo=fopen('alumnos.dat','a+') or die("no puedo abrir archivo");

// grabando los campos

fputs($archivo, $CLAVE."\n");

fputs($archivo, $NOMBRE."\n");

fputs($archivo, $EDAD."\n");

fputs($archivo, $ESTATURA."\n");

//cerrando archivo

fclose($archivo);

//avisando

echo "registro #".$CLAVE." insertado"."<br>";

};

?>

Lectura
<HTML> <FORM ACTION=prog20.php METHOD=post>

<INPUT TYPE=submit NAME=OK VALUE="lectura"><BR>

</FORM></HTML>

<?php

if ($OK == "lectura") {

// abriendo archivo

$archivo=fopen('alumnos.dat','a+');

// empezando una tabla html para desplegar

echo "<HTML><TABLE Border=10 CellPadding=5><TR>";

echo"<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=YellowRed>ESTATURA</th></TR>";

bgcolor=Red>EDAD</th><th

// leyendo el archivo

while (!feof($archivo)){

$clave=fgets($archivo);

$nombre=fgets($archivo);

$edad=fgets($archivo);

$estatura=fgets($archivo);

// desplegando en celda de tabla html

echo"<tr>";

echo "<td>".$clave."</td>";

echo "<td>".$nombre."</td>";

echo "<td>".$edad."</td>";

echo "<td>".$estatura."</td>";

echo"</tr>";

};

// cerrando archivo y la tabla html

echo "</table>";

fclose($archivo);

};

?>

Busqueda
<HTML>

<FORM ACTION=prog21.php METHOD=post>

DAME CLAVE A BUSCAR:<INPUT TYPE=text NAME=CLAVE><BR>

<INPUT TYPE=submit NAME=OK VALUE="busqueda"><BR>

</FORM></HTML>

<?php

if ($OK == "busqueda") {

// abriendo archivo

$archivo=fopen('alumnos.dat','a+');

// empezando una tabla html para desplegar

echo "<HTML><TABLE Border=10 CellPadding=5><TR>";

echo"<th bgcolor=Green>CLAVE</th><th bgcolor=White>NOMBRE</th><th bgcolor=YellowRed>ESTATURA</th></TR>";

bgcolor=Red>EDAD</th><th

// leyendo el archivo

while (!feof($archivo)){

$clave=fgets($archivo);

$nombre=fgets($archivo);

$edad=fgets($archivo);

$estatura=fgets($archivo);

// convirtiendo al mismo tipo

settype($clave,"integer");

// settype($CLAVE,"integer");

if ( $CLAVE == $clave){

// desplegando en celda de tabla html

echo"<tr>";

echo "<td>".$clave."</td>";

echo "<td>".$nombre."</td>";

echo "<td>".$edad."</td>";

echo "<td>".$estatura."</td>";

echo"</tr>";};

};

// cerrando archivo y la tabla html

echo "</table>";

fclose($archivo);

};

?>

Eliminacion
<HTML> <FORM ACTION=prog23.php METHOD=post>

DAME CLAVE A ELIMINAR:<INPUT TYPE=text NAME=CLAVE><BR>

<INPUT TYPE=submit NAME=OK VALUE="baja"><BR>

</FORM></HTML>

<?php

if ($OK == "baja") {

// abriendo dos archivos

$archivo=fopen('alumnos.dat','a+');

$archt=fopen('temporal.dat','a+') or dye ("no puedo crear archivo") ;

// leyendo el archivo original

while (!feof($archivo))

$clave=fgets($archivo);

$nombre=fgets($archivo);

$edad=fgets($archivo);

$estatura=fgets($archivo);

// convirtiendo al mismo tipo

settype($clave,"integer");

if( $CLAVE != $clave and $clave != 0 )

// cargando al archivo temporal

fputs($archt, $clave."\n");

// ojo aqui ya es string

fputs($archt, $nombre);

fputs($archt, $edad);

fputs($archt, $estatura);

};

};

// cerrando los dos archivos

fclose($archivo);

fclose($archt);

// eliminando archivo original

unlink("alumnos.dat");

// renombrando temporal como original

rename("temporal.dat","alumnos.dat");

// avisando

echo "registro eliminado";

};

?>

JAVA
Creacin
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;

public class prog34 extends HttpServlet

{ public void doPost (HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException

// se debe crear un objeto de tipo archivo

DataOutputStream archivo = null;

//historia triste se deben grabar y leer solo campo a campo

// creando e inicializando los campos

int matricula=0;

String nombre=new String("");

int edad=0;

Integer temp1=new Integer(0);

try{

//* Creando y grabando a un archivo, esta larga la instruccin*/

archivo = new DataOutputStream( FileOutputStream("c:\\xitami\\servlets\\susitio\\archivo1.dat",true) );

new

//capturando y convirtiendo los datos de la pagina

temp1 = temp1.valueOf( request.getParameter("MATRICULA"));

matricula= temp1.intValue();

nombre=request.getParameter("NOMBRE");

temp1 =temp1.valueOf(request.getParameter("EDAD"));

edad= temp1.intValue();

//grabando al archivo

archivo.writeInt(matricula);

archivo.writeUTF(nombre);

archivo.writeInt(edad);

archivo.close();

//pagina de aviso

PrintWriter pagina;

response.setContentType("text/html");

pagina = response.getWriter();

pagina.println("<HTML>");

pagina.println("REGISTRO? INSERTADO USAR BACK PARA REGRESAR E INSERTAR OTRO");

pagina.println("</HTML>");

pagina.close();

catch(FileNotFoundException fnfe) { /* Archivo no encontrado */ }

catch (IOException ioe) { /* Error al escribir */ }

destroy();

};

public void destroy(){super.destroy();};

Lectura
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;

public class prog35 extends HttpServlet

{public void doPost (HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException

{ DataInputStream archivo = null;

int matricula=0;

String nombre=new String("");

int edad=0;

PrintWriter pagina;

response.setContentType("text/html");

pagina = response.getWriter();

pagina.println("<HTML>");

pagina.println("<P ALIGN="+"CENTER"+">ALUMNOS TABLA</P>");

pagina.println("<P ALIGN="+"CENTER"+">MATRICULA NOMBRE EDAD</P>");

pagina.println("<DIV ALIGN="+"CENTER"+"><CENTER>");

pagina.println("<TABLE BORDER="+"1"+">");

try{

//* abriendo archivo para lectura */

archivo = new DataInputStream( FileInputStream("c:\\xitami\\servlets\\lauro\\archivo1.dat") );

new

//leyendo archivo

while (true) {

pagina.println("<TR>");

matricula=archivo.readInt();pagina.println("<TD>"+matricula+"</TD>");

nombre=archivo.readUTF();pagina.println("<TD>"+nombre+"</TD>");

edad=archivo.readInt();pagina.println("<TD>"+edad+"</TD>");

pagina.println("</TR>");}

catch(FileNotFoundException fnfe) { /* Archivo no encontrado */ }

catch (IOException ioe) { /* Error al escribir */ }

pagina.println("</TABLE></CENTER></DIV></HTML>");

archivo.close();

pagina.close();

destroy();

};

public void destroy(){super.destroy();};

Busqueda
import java.io.*; import javax.servlet.*; import javax.servlet.http.*;

public class prog36 extends HttpServlet

{ public void doPost (HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException

{ DataInputStream archivo = null;

int matricula=0;

String nombre=new String("");

int edad=0;

Integer temp1=new Integer(0);

PrintWriter pagina;

response.setContentType("text/html");

pagina = response.getWriter();

pagina.println("<HTML>");

pagina.println("<P ALIGN="+"CENTER"+">ALUMNOS TABLA</P>");

pagina.println("<P ALIGN="+"CENTER"+">MATRICULA NOMBRE EDAD</P>");

pagina.println("<DIV ALIGN="+"CENTER"+"><CENTER>");

pagina.println("<TABLE BORDER="+"1"+">");

//capturando clave a buscar

temp1 = temp1.valueOf( request.getParameter("MATRICULA"));

int clave = temp1.intValue();

try{

//* abriendo archivo para lectura */

archivo = new DataInputStream( FileInputStream("c:\\xitami\\servlets\\lauro\\archivo1.dat") );

new

//leyendo archivo y observar donde quedo TR

pagina.println("<TR>");

while (true) {

//leyendo registro

matricula=archivo.readInt();

nombre=archivo.readUTF();

edad=archivo.readInt();

//comparando y desplegar en condicin cierta

if (clave == matricula){

pagina.println("<TD>"+matricula+"</TD>");

pagina.println("<TD>"+nombre+"</TD>");

pagina.println("<TD>"+edad+"</TD>");

pagina.println("</TR>");}; } }

catch(FileNotFoundException fnfe) { /* Archivo no encontrado */ }

catch (IOException ioe) { /* Error al escribir */ }

pagina.println("</TABLE></CENTER></DIV></HTML>");

archivo.close();

pagina.close();

destroy();

};

public void destroy(){super.destroy();};

Delphi
Procedure CrearFichero; Var Datos : File of TListado; begin AssignFile (Datos, Informacion.fic); Rewrite (Datos); CloseFile (Datos); end; Procedure EscribirDatos (NuevaInformacion : TListado);

Var Datos : File of TListado; begin AssignFile (Datos, Informacion. fic); Reset (Datos); Seek (Datos,FileSize (Datos)); Write (Datos, NuevaInformacion); CloseFile (Datos); end; Procedure LeerDatos; Var Datos : File of TListado; I : Integer; begin AssignFile (Datos, Informacion. fic); Reset (Datos); For I := 1 to FileSize (Datos) do Read (Datos, Listado [I]); CloseFile (Datos); end;

XML y FLEX <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="450" width="552" showTitleBar="false"> <mx:Button x="396.5" y="85" label="Cargar Archivo" id="btload" click="onload()" width="110.5"/>

<mx:Button x="401" y="39" label="Crear Archivo" id="btncreate" click="createfile()" width="106"/> <mx:TextArea x="27.5" y="86" width="361" height="341" id="textarea"/> <mx:TextInput x="195" y="39" id="texnomb"/> <mx:Label x="27.5" y="41" text="Nombre del archivo a crear" id="lbtext"/> <mx:Script> <![CDATA[ /* para el tratamiento de archivos. clases: File, FileMode y FileStream */ import flash.filesystem.*; //import flash.net.FileFilter; //import flash.events.Event; public function onload():void{ //declaramos una variable de tipo archivo y la instanciamos var fileToOpen:File= new File(); /*creamos dos variables txtFilter y allfiles de tipo FileFilter para asignar un filtro de archivos para nuestra aplicacion, es decir solo mostrara el tipo de archivos que deseamos */ var txtFilter:FileFilter = new FileFilter("Archivos de Texto (*.as,*.xhtml,*.xml,*.mxml,*.txt)","*.as;*.xhtml;*.xml;*.mxml;*.txt"); var allfiles:FileFilter = new FileFilter("Todos los archivos...","*.*"); try { /*intentamos abrir archivos usando un cuadro de dialogo le pasamos las variables filtro txtFilter y allfiles. */ fileToOpen.browseForOpen("Abrir Archivo", [txtFilter,allfiles]); //en caso de seleccionar un archivo llamar al metodo fileSelected fileToOpen.addEventListener(Event.SELECT, fileSelected); abrir y

} catch (error:Error) { //en caso de error limpiamos el textarea textarea.text=""; /*y mostramos un mensaje de error de error.message el cual nos indica el tipo de error producido. (vease Runtime Errors en la documentacion) */ textarea.text="\nFallo al cargar el archivo: "+String(error.message); } function fileSelected(event:Event):void { /*funcion fileSelected para tratar si un archivo fue seleccionado en el cuadro de dialogo abrir. Creamos una variable llamada stream de tipo FileStream el cual se utilizara para la creacion, carga, lectura y escritura del archivo */ var stream:FileStream = new FileStream(); //abrirmos el archivo fijado por fileToOpen para lectura stream.open(fileToOpen, FileMode.READ); /*declaramos una variable fileData de tipo String para almacenar los datos recopilados del archivo despues de su apertura. Puede utilizarse de la forma: var fileData:String = stream.readUTF(); El metodo stream.readUTF lee una cadena desde el archivo y la trata como de tipo UTF-8. o de la forma:

var fileData:String = stream.readUTFBytes(stream.bytesAvailable); El metodo stream.readUTFBytes lee una secuencia de bytes desde el archivo y los trata como UTF-8. Se le pasa como parametro la cantidad de bytes a leer, en este caso la propiedad bytesAvailable el cual retorna el numero de bytes disponibles para leer desde el archivo. */ var fileData:String = stream.readUTFBytes(stream.bytesAvailable); //pasamos el contenido de la variable fileData al textarea. textarea.text=fileData; }//fileSelected }//onload public function createfile():void{ try { /*intentamos crear un archivo xml y guardarlo en el escritorio del usuario en curso. La funcion createfile utilzada para crear un nuevo archivo xml, con datos establecidos en una variable myXML de tipo XMLDeclaramos un variable source de tipo file, esta representa la ruta a un archivo o directorio. La propiedad desktopDirectory como su nombre lo indica, especifica la ruta del escritorio del usuario.

El metodo resolvePath crea un nuevo objeto tipo File con una ruta relativa para el archivo, basado en un parametro que contiene el nombre y/o ruta del archivo en cuestion. Tomamos lo descrito en un Textinput para darle un nombre al archivo. por defecto fijamos la extension xml. */ var source:File = File.desktopDirectory.resolvePath(texnomb.text+".xml"); //limpiamos el textarea para cargar el archivo. textarea.text=""; /*mostramos donde fue guardado el archivo, la propiedad nativePath indica la ruta, nombre y extension del archivo guardado. */ textarea.text+="\n Archivo creado en: \n"+String(source.nativePath)+"\n"; /*creamos una variable llamada flujo de tipo FileStream el cual se utilizara para la creacion, carga, lectura y escritura del archivo */ var flujo:FileStream = new FileStream(); //abrirmos el archivo fijado por source para escritura flujo.open(source, FileMode.WRITE); //creamos una variable myXML de tipo XML a la cual le ingresamos algunos datos. var myXML:XML = <order> <item id="uno"> <menuName>burger</menuName> <price>3.95</price> <cant>20</cant> </item>

<item id="2"> <menuName>fries</menuName> <price>1.45</price> <cant>60</cant> </item> <item id="3"> <menuName>carne</menuName> <price>3444.5</price> </item> <item id="4"> <menuName>fin</menuName> <price>0</price> </item> </order>; /*creamos una variable cab, de tipo String para cargar la cabecera del XML, esto se hace para tener conformidad con el standar y que a la variable XML no se le puede anexar. */ var cab:String="<?xml version=\"1.0\" encoding=\"iso8859-1\"?>" /*opcionalmente podemos convertir la variable myXML a String y asignarsela a una variable de tipo String para pasarla como parametro al metodo writeUTFBytes, utilizado para guardar los datos al archivo. ej: var cadxml:String= myXML.toString(); flujo.writeUTFBytes(cab);//guardamos la cabecera del xml flujo.writeUTFBytes(cadxml);//guardamos el xml

*/ //escribimos los datos en el archivo flujo.writeUTFBytes(cab);//guardamos la cabecera del xml flujo.writeUTFBytes(myXML);//guardamos el xml //cerramos el archivo flujo.close(); } catch (error:Error) { //en caso de error limpiamos el textarea textarea.text=""; /*y mostramos un mensaje de error de error.message el cual nos indica el tipo de error producido. (vease Runtime Errors en la documentacion) */ textarea.text+="\nFallo al cargar el archivo: "+String(error.message); } }//createfile ]]> </mx:Script> </mx:WindowedApplication>