Está en la página 1de 24

Archivos secuenciales

Utilizacin y sintaxis
17 de febrero de 2012 Cynthia Gabriela Valles Nez Grupo A

Ficheros secuenciales: Es aquel fichero cuyos registros pueden ser tratados en secuencia, unos datos detrs de otros. Despus de haber ledo un registro el dispositivo de lectura se posiciona al principio del siguiente registro. Este tipo de ficheros son muy convenientes cuando tenemos que leer todos los datos del fichero. No podemos aadir datos a un fichero secuencial, se copia todo en un fichero nuevo. Ficheros indexados secuenciales: Mediante este tipo de ficheros podemos solucionar el problema de los ficheros secuenciales respecto a la actualizacin y acceso a un registro, hacindolo de forma casi directa, as como la realizacin de altas y bajas. Este tipo de ficheros tiene que estar almacenado en un soporte fsico de acceso directo. Todos los registros del fichero tendrn un campo clave para identificarlo de forma nica, no pudiendo existir dos registros con el mismo campo clave. Ser por este campo por el cual se graben en orden ascendente y se localicen los registros del fichero. Archivos secuenciales en C# Sintaxis bsica para C# Tipo FILE:C dene la estructura de datos FILE en el chero de cabecera stdio.h para el manejo de cheros. Nosotros siempre usaremos punteros a estas estructuras. La denicion de esta estructura depende del compilador, pero en general mantienen un campo con la posicin actual de lectura/escritura, un bu er para mejorar las prestaciones de acceso al chero y algunos campos para uso interno. Funcin Fopen: Sintaxis: FILE *fopen (char *nombre, char *modo); esta funcin sirve para abrir y crear cheros en disco. El valor de retorno es un puntero a una estructura FILE. Los parmetros de entrada son: Nombre: una cadena que contiene un nombre de chero valido, esto depende del sistema operativo que estemos usando. El nombre puede incluir el camino completo. Modo: especica en tipo de chero que se abrir o se creara y el tipo de datos que puede contener, de texto o binarios: r: solo lectura. El chero debe existir. W: se abre para escritura, se crea un chero nuevo o se sobre escribe si ya existe.

A: aadir, se abre para escritura, el cursor se sita al nal del chero. Si el chero no existe, se crea.r+: lectura y escritura. El chero debe existir.w+: lectura y escritura, se crea un chero nuevo o se sobrescribe si ya existe. a+: aadir, lectura y escritura, el cursor se sita al nal del chero. Si el chero no existe, se crea.t: tipo texto, si no se especica t ni b, se asume por defecto que es tb: tipo binario. Funcin fclose: Sintaxis: int fclose (FILE *chero); Es importante cerrar los cheros abiertos antes de abandonar la aplicacin. Esta funcin sirve para eso. Cerrar un chero almacena los datos que an estn en el bu erde memoria, y actualiza algunos datos de la cabecera del chero que mantiene el sistema operativo. Adems permite que otros programas puedan abrir el chero para su uso. Muy a menudo, los cheros no pueden ser compartidos por varios programas. Un valor de retorno cero indica que el chero ha sido correctamente cerrado, si ha habido algn error, el valor de retorno es la constante EOF. El parmetro es un puntero a la estructura FILE del chero que queremos cerrar. Funcin fgetc: Sintaxis: int fgetc(FILE *chero);Esta funcin lee un carcter desde un chero. El valor de retorno es el carcter ledo como un unsigned char convertido a int. No hay ningn carcter disponible, el valor de retorno es EOF. El parmetro es un puntero a una estructura FILE del chero del que se har la lectura. Funcin fputc: Sintaxis: int fputc (int carcter, FILE *chero); Esta funcin escribe un carcter a un chero. El valor de retorno es el carcter escrito, si la operacin fue completada con exito, en caso contrario ser EOF. Los parmetros de entrada son el carcter a escribir, convertido a int y un puntero a una estructura FILE del chero en el que se har la escritura. Funcin feof: Sintaxis: int feof (FILE *chero); Esta funcin sirve para comprobar si se ha alcanzado el nal del chero. Muy frecuentemente deberemos trabajar con todos los valores almacenados en un archivo de forma secuencial, la forma que suelen tener los bucles para leer todos los datos de un archivo es permanecer leyendo mientras no se detecte el n de chero. Esta funcin suele usarse como prueba para vericar si se ha alcanzado o no ese punto. El valor de retorno es distinto de cero solo si no se ha alcanzado el

n de chero. El parmetro es un puntero a la estructura FILE del chero que queremos vericar. Funcin rewind: Sintaxis: void rewind(FILE *chero);Es una funcion heredada de los tiempos de las cintas magneticas. Literalmentesignica rebobinar, y hace referencia a que para volver al principio de un archivo almacenado en cinta, haba que rebobinarla. Eso es lo que hace esta funcin, sita el cursor de lectura/escritura al principio del archivo. El parmetro es un puntero a la estructura FILE del chero que queremos rebo-binar. Funcin fgets: Sintaxis: char *fgets(char *cadena, int n, FILE *chero);Esta funcin esta diseada para leer cadenas de caracteres. Leera hasta n-1 caracteres o hasta que lea un retorno de lnea. En este ltimo caso, el carcter de retorno de lnea tambin es ledo. El parmetro n nos permite limitar la lectura para evitar desbordar el espacio disponible en la cadena. El valor de retorno es un puntero a la cadena leda, si se ley con xito, y es NULLsi se detecta el nal del chero o si hay un error. Los parmetros son: la cadena a leer, el nmero de caracteres mximo a leer y un puntero a una estructura FILE del chero del que se leer. Funcin fputs: Sintaxis: int fputs(const char *cadena, FILE *stream);La funcin fputs escribe una cadena en un chero. No s aade el carcter de retorno de lnea ni el carcter nulo nal. El valor de retorno es un nmero no negativo o EOF en caso de error. Los parmetros de entrada son la cadena a escribir y un puntero a la estructura FILE del chero donde se realizara la escritura. Funcin fread: Sintaxis: size t fread(void *puntero, size t tamao, size t registros, FILE *chero);Esta funcin est pensada para trabajar con registros de longitud constante. Es capaz de leer desde un chero uno o varios registros de la misma longitud y a partir de una direccin de memoria determinada. El usuario es responsable de asegurarse de que hay espacio suciente para contener la informacin leida. El valor de retorno es el nmero de registros ledos, no el nmero de bytes. Los parmetros son: un puntero a la zona de memoria donde se almacenaran los datos leidos, el tamao de cada registro, el nmero de registros a leer y un puntero a la estructura FILE del chero del que se har la lectura. Funcin fwrite:

Sintaxis: size t fwrite(void *puntero, size t tamao, size t nregistros, FILE *chero);Esta funcin tambin pensada para trabajar con registros de longitud constante y forma pareja con fread. Es capaz de escribir hacia un chero uno o varios registros de la misma longitud almacenados a partir de una direccin de memoria determinada. El valor de retorno es el nmero de registros escritos, no el nmero de bytes. Los parmetros son: Un puntero a la zona de memoria donde se almacenaran los datos leidos, el tamao de cada registro, el nmero de registros a leer y un puntero a la estructura FILE del chero del que se har la lectura. Funcin fprintf: Sintaxis: int fprintf(FILE *chero, const char *formato, ...); La funcin fprintf funciona igual que printf en cuanto a parmetros, pero la salida se dirige a un chero en lugar de a la pantalla. Funcin fscanf: Sintaxis: int fscanf(FILE *chero, const char *formato, ...);La funcin fscanf funciona igual que scanf en cuanto a parmetros, pero la entrada se toma de un chero en lugar del teclado. Funcin ush:

Sintaxis: int ush(FILE *chero);Esta funcin fuerza la salida de los datos acumulados en el bu er de salida del chero. Para mejorar las prestaciones del manejo de cheros se utilizan bu ers, almacenes temporales de datos en memoria, las operaciones de salida se hacen a travs del bu er, y solo cuando el bu er se llena se realiza la escritura en el disco y se vacia el bu er. Enocasiones nos hace falta vaciar ese bu er de un modo manual, para eso sirve esta funcin. El valor de retorno es cero si la funcin se ejecut con xito, y EOF si hubo algn error. El parmetro de entrada es un puntero a la estructura FILE del chero del que se quiere vaciar el bu er. Si es NULL se har el vaciado de todos los cheros abiertos. Funciones C espec cas para cheros de acceso aleatorio Funcin fseek: Sintaxis: int fseek(FILE *chero, long int desplazamiento, int origen);Esta funcin sirve para situar el cursor del chero para leer o escribir en el lugar deseado. El valor de retorno es cero si la funcin tuvo xito, y un valor distinto de cero si hubo algn error. Los parmetros de entrada son: un puntero a una estructura FILE del chero en el que queremos cambiar el cursor de lectura/escritura, el valor del desplazamiento y el punto de origen desde el que se calculara el desplazamiento. El parmetro origen puede tener tres posibles valores: SEEK SET el desplazamiento se cuenta desde el principio del chero. El primer byte del chero tiene un desplazamiento cero. SEEK

CUR el desplazamiento se desde la posicin actual del cursor. SEEK END el desplazamiento se cuenta desde el nal del chero. Funcin ftell: Sintaxis: long int ftell(FILE *chero);La funcin ftell sirve para averiguar la posicin actual del cursor de lectura escritura de un chero. El valor de retorno ser esa posicin, o -1 si hay algn error. El parmetro de entrada es un puntero a una estructura FILE del chero del que queremos leer la posicin del cursor de lectura escritura.

Sintaxis lenguaje 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(); } } }

Manejo de archivos secuenciales en php Sintaxis bsica para 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:
y y y y y y y

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. Funcin copy rename un link Descripcin Copia un archivo Sintaxis copy($origen, $destino)

Cambia el nombre del archivo rename($antes, $despus) de $antes a $despus Borra el archivo un link($archivo)

Manejo de imgenes A continuacin se presentan dos ejemplos, para mostrar la totalidad de las imgenes de una carpeta. Ejemplo:
y y y y

La funcin PHP opendir() se encarga de habilitar una ruta a un subdirectorio. La funcin readdir() se encarga de leer un archivo o subdirectorio. strlower() convierte el contenido de una cadena a minscula. substr() extrae una subcadena de una cadena, en este caso por ser el parmetro negativo extrae los ltimos cuatro caracteres (lnea 10). El objetivo es extraer la extensin del archivo. closedir() cierra la ruta al subdirectorio.

<?php if ($gestor = opendir('../imagenes')) { // Abre un gestor de directorios echo "<table border=1 align='center'>"; echo "<tr>"; $i=0; while (false !== ($archivo = readdir($gestor))) { //readdir: Lee un elemento del directorio //$gestor abierto previamente //con opendir y desplaza el puntero al elemento siguiente if ($archivo != "." and $archivo != "..") { //checa que no sea subdirectorio $extensin = strtolower(substr($archivo, -4)); //strlower pasa a minscula una cadena en este caso //los 4 ltimos caracteres //de la cadena if (($extension == '.jpg') or ($extension == '.gif') or ($extension == '.png')) { if ($i==4) {// Cuatro imagenes por rengln $i=0; echo "</tr>"; echo "<tr>"; } $i++; echo "<td>"; echo "<a href='../imagenes/$archivo'>"; echo "<img src='../imgenes/$archivo'"; echo "border='0' ></a>"; echo "</td>"; }

} } echo "</tr>"; echo "</table>"; closedir($gestor); //Cierra el gestor } ?> Ejemplo:

y y y

La funcin glob() realiza una bsqueda por todos los nombres de ruta que coincidan con cierto patrn. En este caso con los grficos vlidos para HTML. sort() ordena los nombres de los archivos encontrados. el ciclo foreach recorre el arreglo de archivos.

<?php echo "<table border=1 align='center'>"; echo "<tr>"; $i = 0; //carga las imgenes de la carpeta //La funcin glob() realiza una bsqueda por todos los nombres //de ruta que coincidan con patrn $ruta = "../imgenes/"; $imgenes = glob($ruta . "{*.jpg, *.gif, *.png}", GLOB_BRACE); sort($imagenes); //Recorre el vector foreach($imagenes as $foto){ if ($i==4) { $i=0; echo "</tr>"; echo "<tr>"; } $i++; echo "<td><a href='".$foto."'><img src='".$foto."/></a></td>"; } echo "</tr>"; echo "</table>"; ?>

Para el siguiente ejemplo usaremos 4 funciones bsicas de manipulacin de archivos Funcin filesize fopen Descripcin Obtiene el tamao del archivo Sintaxis filesize($archivo);

$id Abre un archivo y le asigna un = fopen($archivo, identificador id. $modo);

Lee completamente el archivo y lo muestra. El cierre del archivo es fpassthru fpassthru($id); automtico al terminar el volcado del archivo. Permite modificar las cabeceras que enva el servidor al navegador. Estas cabeceras, que siguen el protocolo HTTP, es la primera header("mensaje"); informacin que recibe el navegador en cada peticin que realiza, antes que el contenido del archivo.

header

Ejemplo: Mostrar una imagen Fopen adems de abrir un archivo, obtiene un apuntador a su contenido. fopen solo debe usarse para abrir un archivo cuyo contenido vamos a manipular. Si nicamente queremos recuperar su contenido (y por ejemplo mostrarlo en pantalla), hay otras funciones ms adecuadas. Los modos en los que se puede abrir un archivo son:
y y y

y y

r Slo lectura. El puntero al comienzo del archivo r+ Lectura y escritura; apuntador al inicio del archivo w Slo escritura, si no existe el archivo lo crea, si existe lo convierte en archivo de longitud cero y el apuntador se coloca en el inicio (sobreescribe el contenido, vamos) w+ Lectura y escritura, si existe lo trunca a tamao cero, y se sita al inicio, si no existe lo crea a Modo append, slo escritura, si no existe lo crea. Si existe, el apuntador se coloca al final del archivo (listo para escribir a continuacin del contenido) a+ Modo append, lectura y escritura, si no existe lo crea; apuntador al final del archivo b es un flag adicional a cualquiera de los anteriores que indica que vamos a operar sobre un archivo binario (en contraposicin a archivo de texto) como una

imagen o un sonido. En algunos sistemas operativos como linux no existe esta diferencia as que el indicador b ser ignorado. Las lneas 7 y 8 envan cabeceras HTTP para indicar el tamao y formato del archivo.

fpassthru (lnea 11) hace un volcado del archivo previamente definido en la lnea 4. <?php // Abree el archivo en modo binario $imagen = '../imagenes/Shakira02.png'; $id = fopen($imagen, 'rb'); // Enva las cabeceras header('Content-Type: image/png'); header('Content-Length: ' . filesize($imagen)); // imprime el archivo y detiene el script fpassthru($id); exit; ?> Una versin reducida de este cdigo lo podemos encontrar en:

La funcin file_get_contents (lnea 4) permite leer el contenido de un archivo en una cadena. <? header( "Content-type: image/png"); $archivo = '../imgenes/Shakira02.png'; $imagen = file_get_contents($archivo); echo $imagen; ?> Leer un archivo de texto
y y y y

En la lnea 2 se genera un apuntador al archivo alumnos.txt La funcin feof (lnea 4) comprueba si se encuentra el fin del archivo La funcin fgets lee el contenido de un archivo hasta encontrar el fin de lnea (lnea 4) fclose (lnea 5) cierra el apuntador

<?php $archivo = fopen('0310alumnos.txt', 'r'); //Imprime una lnea hasta que el //final del archivo es encontrado while(!feof($archivo)) { echo fgets($archivo)."<br />";

} fclose($archivo); ?> Otra forma de hacerlo es mediante la funcin fread (lnea 6) la cual lee el contenido de un archivo. <?php // obtiene el contenido de un archivo en //una cadena $archivo = '0310alumnos.txt'; $id = fopen($archivo, 'r'); $contenido = fread($id, filesize($archivo)); echo $contenido; fclose($id); ?>

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

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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

// 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 } // 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;

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

Archivos secuenciales en XML Sintaxis bsica para XML 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 secuencial puede ver los registros en un orden secuencial simple. La nica forma de recuperar registros es comenzar al principio y extraerlos en el orden contemplado. < xml="true" namespace=""> ns="urn:schemas-microsoft-com:office:office" prefix="o"

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.

EJEMPLO: LO QUE HACE ESTE EJEMPLO ES LEER UN ARCHIVO DE TEXTO Y CUENTA LAS LINEAS DE EL MISMO TEXTO: *Ponemos un command Button al formulario y a este le agregamos el codigo as:

*Le ponemos otro command Button que es el de salir con su respectivo codigo que es end Este es el codigo que ponemos en el command contar: 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 lnea por lnea hasta el final Do Lee una linea Line input #f, srt_linea Incrementa la cantidad de lneas ledas Lneas = lneas + 1 Leer hasta que llegue al fin de archivo Loop While not EOF(F) Cierra el archive de texto abierto Close #f Retorna a la funcin el nmero de lneas 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 lneas) If Path = vbNullString Then Exit sub MsgBox cantidad de lneas : & contra_lineas(path) End Sub

Archivos secuenciales en Delphi Sintaxis bsica en Delphi


La creacin de un archivo secuencial incluye la escritura de registros en una secuencia deseada dentro del medio de almacenamiento. La creacin de un archivo secuencial de transacciones incluye la tarea de recolectar datos, convertir los datos a una forma legible para la mquina, editar los datos, convertir los movimientos rechazados y ordenar los datos editados.
Es un sencillo ejemplo que te ayudar a entender cmo se manejan los archivos secuenciales en Delphi. Aqu est el codigo fuente: PLAIN TEXT

DELPHI: 1. unit Unit1; 2. 3. interface 4. 5. uses 6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7. Dialogs, StdCtrls; 8. 9. type 10. TForm1 = class(TForm) 11. Memo: TMemo; 12. archivo: TEdit; 13. Button1: TButton; 14. Button2: TButton; 15. Button3: TButton; 16. Button4: TButton; 17. Label1: TLabel; 18. Label2: TLabel; 19. Label3: TLabel; 20. Label4: TLabel; 21. Label5: TLabel; 22. Label6: TLabel; 23. letras: TLabel; 24. digitos: TLabel; 25. blancos: TLabel; 26. caracteres: TLabel; 27. consonantes: TLabel; 28. vocales: TLabel; 29. procedure Button4Click(Sender: TObject); 30. procedure Button3Click(Sender: TObject); 31. procedure Button1Click(Sender: TObject); 32. procedure Button2Click(Sender: TObject); 33. private 34. { Private declarations } 35. public 36. { Public declarations } 37. end; 38. 39. var 40. Form1: TForm1; 41. 42. implementation

43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 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. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.

{$R *.dfm} procedure TForm1.Button4Click(Sender: TObject); begin form1.close end; procedure TForm1.Button3Click(Sender: TObject); begin archivo.Text:=''; letras.caption:=''; digitos.caption:=''; blancos.caption:=''; caracteres.caption:=''; vocales.caption:=''; consonantes.caption:=''; memo.Text:=''; memo.SetFocus; end; procedure TForm1.Button1Click(Sender: TObject); begin memo.Lines.LoadFromFile(archivo.text); end; procedure TForm1.Button2Click(Sender: TObject); var l,d,b,v,c,ce,a,band:integer; x:char; begin l:=0; d:=0; b:=0; v:=0; c:=0; ce:=0; a:=0; while a<>length(memo.Text) do begin band:=0; a:=a+1; x:=memo.text[a]; if x in ['A'..'Z','a'..'z','','','','','','','','','','','',''] then begin l:=l+1; band:=1; end; if x in ['0'..'9'] then begin d:=d+1; band:=1; end;

100. if x=' ' then 101. begin 102. b:=b+1; 103. band:=1; 104. end; 105. 106. if x in ['a','e','i','o','u','A','E','I','O','U','','','','','','','','','',''] then 107. begin 108. v:=v+1; 109. band:=1; 110. end; 111. 112. if band=0 then 113. ce:=ce+1; 114. 115. end; 116. 117. letras.caption:=inttostr(l); 118. digitos.caption:=inttostr(d); 119. blancos.caption:=inttostr(b); 120. vocales.caption:=inttostr(v); 121. consonantes.caption:=inttostr(l-v); 122. caracteres.caption:=inttostr(ce); 123. end; 124. 125. end.

Fuentes:
http://archivosecuencial.blogspot.com/2009/09/6-archivos-secuenciales-en-java.html http://luauf.com/2008/04/30/lectura-secuencial-de-archivos-con-c/ http://html.rincondelvago.com/ficheros-en-los-lenguajes-de-programacion.html http://www.recursosdelweb.com/como-leer-archivos-secuenciales-en-delphi/ http://www.mitecnologico.com/Main/EstructuraArchivosOrganizacionSecuencial http://prograweb.com.mx/pweb/0310Archivos.html https://sites.google.com/site/natisaleja/archivossecuencialesyaleatorios

También podría gustarte