miércoles, 12 de mayo de 2010

ARCHIVOS DE TEXTO

Definición archivo texto:
Estructura de datos permanente no estructurado formado por una secuencia de caracteres ASCII.

¿Como se alamacenan datos en un archivo de texto y que tipo de clases se utilizan?
La lectura y escritura de una archivo se hace utilizando el concepto generico de stream

un stream es como se denomina a un objeto utilizado para transferir datos
las clases utilizadas son:

Stream
streamreader
streamwriter
filestream
textreader
textwriter
memorystream
bufferedsteam
file
directory


3)¿Como se hace la lectura de datos almacenados en un archivo
Tipos de Acceso a los Archivos
a.)Secuencial:
Se accesan uno a uno los registros desde el primero hasta el último o hasta aquel que cumpla con cierta condición de búsqueda. Se permite sobre archivos de Organización secuencial y Secuencial Indexada.

b.)Random:
Se accesan en primera instancia la tabla de índices de manera de recuperar la dirección de inicio de bloque en donde se encuentra el registro buscado. (dentro del rea primaria o de overflow). Se permite para archivos con Organización Sec.Indexada.

c.)Dinámico:
Se accesan en primera instancia la tabla de índices de manera de recuperar la dirección de inicio de bloque en donde se
encuentra el registro buscado. (dentro del rea primaria o de overflow). Se permite para archivos con Organización Sec.Indexada.

d.)Directo:
Es aquel que utiliza la función de Hashing para recuperar los registros. Sólo se permite para archivos con Organización Relativa.

Constantes
Las constantes son similares a una variable pero tienen un valor determinado que se mantiene igual en toda la ejecución del programa. El contenido de una variable puede cambiar tantas veces sea necesario. ¿Porque usar una constante si no puede cambiar de valor?. Hacemos esto cuando deseamos usar un mismo número o una palabra (string) varias veces.

4)¿Como se especificauna ruta para localizar un archivo?

En este artículo paso a paso se muestra cómo buscar archivos en subdirectorios a través de código de forma recursiva empezando por el directorio raíz. Debe especificar una cadena de búsqueda, de manera que pueda buscar archivos que cumplan determinados criterios. Cada fragmento de código se explica según sea necesario. Al final de este artículo también se incluye un ejemplo de código que funciona.

La recursividad de directorios es una tarea de E/S habitual para los desarrolladores. El objeto FileSystemObject facilita esta tarea para las aplicaciones del Modelo de objetos componentes (COM). En .NET esta tarea resulta aún más sencilla. Al igual que FileSystemObject, las clases del espacio de nombres System.IO proporcionan un método orientado a objetos para obtener acceso a los archivos y directorios.

ecursividad de directorios
Las clases de tratamiento de archivos y directorios residen en el espacio de nombres System.IO. Antes de que pueda trabajar con estas clases, debe importar el siguiente espacio de nombres al proyecto:
using System.IO;

El espacio de nombres System.IO proporciona muchas opciones para trabajar con archivos y directorios. El espacio de nombres System.IO no sólo proporciona clases de las que pueden crearse instancias, sino que también proporciona clases para utilidades de archivos y directorios. Estas clases contienen métodos estáticos a los que puede llamarse sin tener que declarar una variable de ese tipo. Por ejemplo, puede utilizar el objeto Directory para obtener los subdirectorios de un directorio determinado.

El siguiente código utiliza el método estático GetDirectories del objeto Directory para devolver una matriz de cadenas. Esta matriz contiene nombres de rutas de directorio a los subdirectorios del directorio C, si existe alguno.
string[] directories = Directory.GetDirectories("C:\\");

El objeto Directory también contiene un método denominado GetFiles que permite recuperar una matriz de cadenas de archivos que cumplen determinados criterios. El ejemplo de código siguiente utiliza el objeto File para recuperar todos los archivos del directorio C que tienen la extensión .dll:
string[] files = Directory.GetFiles("C:\\", "*.dll");

Los métodos GetDirectories y GetFiles del objeto Directory son todo lo que se necesita para buscar archivos que coincidan con los criterios de búsqueda de forma recursiva. El siguiente método se utiliza para efectuar la recursividad:
void DirSearch(string sDir) { try { foreach (string d in Directory.GetDirectories(sDir)) { foreach (string f in Directory.GetFiles(d, txtFile.Text)) { lstFilesFound.Items.Add(f); } DirSearch(d); } } catch (System.Exception excpt) { Console.WriteLine(excpt.Message); } }

El código anterior transfiere una cadena (que contiene el directorio en el que desea buscar) a DirSearch. El valor de la cadena es el nombre completo de la ruta del directorio. Puede utilizar GetDirectories para recuperar los subdirectorios del directorio que se pasa al procedimiento. Dado que GetDirectories devuelve una matriz, puede utilizar una instrucción for/each para buscar en cada subdirectorio. En cada subdirectorio, utilice el método GetFiles para buscar en los archivos de ese directorio. El valor del cuadro de texto del formulario se pasa a GetFiles. El cuadro de texto contiene la cadena de búsqueda que filtra los resultados devueltos por GetFiles. Si algún archivo coincide con los criterios de búsqueda, se agregarán al cuadro de lista. Para cada subdirectorio que se encuentre, vuelva a llamar a DirSearch y pásele un subdirectorio. Con esta llamada recursiva, podrá buscar en todos los subdirectorios de un directorio raíz determinado.

No hay comentarios:

Publicar un comentario