archivos de texto en csharp

Download Archivos de Texto en CSharp

Post on 24-Jul-2015

1.054 views

Category:

Documents

1 download

Embed Size (px)

DESCRIPTION

Archivos de Texto en CSharp

TRANSCRIPT

UNIVERSIDAD DE CORDOBA FACULTAD DE INGENIERIAS PROGRAMA INGENIERIA DE SISTEMAS CURSO: Electiva de profundizacin I (desarrollo de software libre) TEMA: Archivos de texto en C#. DESCRIPCION: A lo largo de este documento se realiza un estudio del concepto y caractersticas de los archivos de texto y la respectiva implementacin de un ejemplo practico en lenguaje C# mediante un proyecto de interfaz grafica de usuario (GUI) construido con MonoDevelop basado en GTK# 2.0, describiendo ademas los ensamblados, clases y mtodos de estas disponibles en C# para el tratamiento de archivos texto. Para este efecto se disea e implementa una primera clase abstracta especializada en las operaciones de creacin y apertura de un archivo de texto en modo de escritura, de tal suerte que adems permita almacenar en disco (serializar) cualquier tipo de objeto mediante un mtodo abstracto. En ese mismo orden de ideas se disea e implementa una segunda clase para apertura y recorrido de un archivo de texto en modo de lectura, que adems tiene un mtodo abstracto para recuperar los objetos serializados en el archivo. El proyecto de ejemplo ilustra el uso de menus en GTK# 2.0 y cuadros de dilogos para la apertura y guardado de archivos, adicional al uso de filtros en estos para tipos de archivos. OBJETIVO: Disear e implementar en el lenguaje C# las clases necesarias para realizar las operaciones de creacin, apertura, escritura y lectura de archivos de texto, incluyendo la serializacion y recuperacin de cualquier tipo de objetos, desarrollando para ello una aplicacin de ventanas en C# con MonoDevelop que muestre la serializacin de un tipo de objetos y su recuperacin desde un archivo de texto. PALABRAS CLAVES: Archivos de texto en C#, serializacin de objetos, la clase File, StreamWriter y StreamReader de C#, los Widget TreeView y MenuBar.

Lic. Luis Roberto Olascoaga Surmay

1. Archivos de Texto En general los archivos son un mecanismo de persistencia de datos aunque menos sofisticados como por ejemplo el caso de las bases de datos. Esto significa que los datos con que trabajan nuestros programas pueden ser guardados de manera permanente en disco, de modo que en cualquier momento posterior lo podamos recuperar sin que se pierdan por causa de cerrar el programa o reiniciar nuestra PC. El tratamiento de un archivo podemos enfocarlo desde distintos puntos de vista, segn si nos interesa realizar con ellos operaciones propias del sistema operativo (como por ejemplo copiado, renombrado, asignacin de permisos, eliminacin etc.) en las que el significado o interpretacin del contenido del archivo no es de importancia. Por otro lado el trabajo con el archivo tambin puede orientarse hacia el tratamiento del contenido de este, lo cual incluye operaciones como la lectura, la escritura o modificacin y en todo caso suponemos que interesa el significado o interpretacin del contenido del archivo. En este documento trataremos a los archivos en funcin de su contenido. En cuanto a los archivos de texto, estos constituyen la forma ms simple de guardar y leer datos hasta o desde un archivo fsico en disco. Un archivo de texto, como su nombre lo indica, esta compuesto por un conjunto de lneas de caracteres, que se almacenan en el archivo usando algn formato especial de codificacin, entre los que se destacan el ASCII, UNICODE, UTF entre otros. Estos valores se almacenan sin ningn atributo de texto especial como tamao de letra, color y caractersticas similares, con lo cual a los archivos de texto tambin se les llaman archivos planos. Por estas razones el contenido de un archivo de texto es legible, lo cual supone que podemos ver y comprender su contenido directamente, al menos desde cualquier editor de texto; incluso con independencia del sistema operativo, lenguaje de programacin o software con el que se ha creado dicho archivo. En trminos de las operaciones de lectura y escritura en archivos de texto, estas se hacen lnea a lnea, es decir que cada vez que se guarda o se lee se almacena o se lee una lnea de caracteres completa, la cual puede variar para cualquiera de las dos operaciones en la longitud o cantidad de caracteres que la componen. Siempre que se guarda una lnea o se lee, el puntero de archivo avanza a la siguiente lnea, por lo cual un archivo de texto en funcin de su modo de acceso es tambin un archivo secuencial. As por ejemplo si queremos acceder a la dcima lnea de un archivo, previamente debemos leer las nueve que le preceden. Las operaciones de lectura y de escritura en archivos de texto son

Lic. Luis Roberto Olascoaga Surmay

mutuamente excluyentes, es decir, un archivo de texto se abre en un solo modo; sea para leer o para escribir y no en ambos; no obstante se puede abrir en un modo, realizar las operaciones requeridas y luego cerrarse para abrirse en el otro modo. 2. Archivos de Texto en C# Las consideraciones anteriormente expuestas aplican a la forma en la cual se ven los archivos de texto en el lenguaje C#. Para el tratamiento de archivos (de cualquier tipo) y de directorio desde C# se utiliza el ensamblado System.IO, que contiene clases, excepciones, estructuras, enumeraciones y dems elementos especializados en operaciones de entrada y salida con archivos y directorios. Una de las clases ms representativas de este ensamblado es la clase File, la cual contiene mtodos estticos para gestin tanto de archivos como de directorios entre los que se destacan:

File.Copy: Que permite hacer una copia exacta de un archivo dando el nombre del archivo original y el nombre de la copia (destino). File.Move: Que permite mover un archivo de un directorio o disco a otro, o en su defecto renombrar un archivo existente. Es equivalente a la operacin de cortar y pegar y se le indican el nombre del archivo original y el nuevo nombre o destino (directorio).

File.Delete: Que borra fsicamente un archivo dando el nombre del archivo. File.Exitsts: Funcin booleana que determina si un archivo o directorio existe o no, indicando el nombre del archivo o directorio segn sea el caso. File.GetCreationTime: Funcin a la que se le indica un nombre de archivo o directorio y retorna un tipo DateTime representativo de la fecha y hora en la que fue creado. File.GetLastAccessTime: Funcin que toma por parmetro el nombre de un archivo y retorna un tipo DateTime con la fecha y hora en la que el archivo fue accedido por ultima vez.

File.GetLastWriteTime: Funcin a la que se le pasa el nombre de un archivo y retorna un tipo DateTime con la fecha y hora en la que el archivo fue modificado por ltima vez.

File.OpenText: Funcin que crea una instancia de la clase StreamReader usada para leer un archivo de texto indicando el nombre del archivo, dejando el puntero de archivo en la primera lnea del archivo.

Lic. Luis Roberto Olascoaga Surmay

File.CreateText: Funcin que crea una instancia de la clase StreamWriter usada para escribir en un archivo de texto indicando el nombre del archivo. Si el archivo no existe lo crea, pero si existe borra su contenido.

File.AppendText: Funcin que crea una instancia de la clase StreamWriter usada para escribir en un archivo de texto en modo aadir al final, indicndole el nombre del archivo. Si el archivo no existe lo crea y si existe conserva su contenido.

Ahora bien para acceder a un archivo de texto en modo de escritura optamos por usar la clase StreamWriter la cual tiene los siguientes mtodos y propiedades de inters:

Write: Mtodo sobrecargado para guardar un dato o valor de cualquier tipo hasta el archivo, sin hacer un salto de lnea en este despus de almacenar el valor. WriteLine: Mtodo sobrecargado para guardar un dato o valor de cualquier tipo hasta el archivo almacenando un salto de lnea despus de almacenar el valor. Flush: Mtodo que vaca el buffer de archivo usado de modo que se garantiza que todos los cambios o escrituras hechos en el archivo a nivel de memoria sean efectivamente guardados en el archivo fsico en disco.

Close: Mtodo que cierra el archivo y todos los flujos de datos abiertos por este. Dispose: Mtodo destructor del objeto. Encoding: Propiedad que es un objeto representativo del tipo o formato de codificacin del archivo.

En cuanto al acceso de un archivo de texto en modo de lectura usamos una instancia de la clase StreamReader cuyos mtodos y propiedades de mayor importancia son:

Read: Mtodo sobrecargado para leer un carcter o un buffer (arreglo) de caracteres desde el archivo. ReadLine: Mtodo que lee y retorna la lnea de caracteres actual en el archivo; si no hay ms lneas que leer (cuando se llega al final) retorna un null. ReadToEnd: Mtodo lee todo el contenido del archivo de una vez retornndolo en una sola cadena de caracteres. Close: Mtodo que cierra el archivo y todos los flujos de datos abiertos por este. Dispose: Mtodo destructor del objeto.

Lic. Luis Roberto Olascoaga Surmay

CurrentEncoding: Propiedad que es un objeto representativo del tipo o formato de codificacin con el que se abri el archivo. EndOfStream: Propiedad booleana que indica si se ha alcanzado el final del archivo o no durante las operaciones de lectura. BaseStream: Propiedad que es una instancia descendiente de la clase Stream (flujo o secuencia de datos o bytes) relacionada con el flujo de datos del archivo.

3. Presentacin ejemplo serializacin de objetos con archivos de texto A efectos del proceso de serializacin consideraremos almacenar los datos bsicos de una persona correspondiente al cdigo, apellidos, nombres, edad, estrato y sexo, los cuales sern representados por propiedades de la clase TPersona. Se diseara e implementara una clase para guardar datos en forma de lneas de caracteres hasta un archivo de texto, la cual contendr un mtodo abstracto llamado GuardarObj para serializar un objeto de cualquier clase, adems de los habituales mtodos para crear, aadir y cerrar un archivo de texto conociendo su nombre a travs de una propieda

Recommended

View more >