Saul Remis

Developing ideas

TUTORIAL II ASP.NET: Archivos de texto

Creación, lectura y escritura de archivos de texto

En muchas situaciones es necesario almacenar información en el servidor, tenemos dos alternativas, si la cantidad de datos a almacenar es pequeña podemos utilizar un archivo de texto para ello (en la próxima clase veremos como almacenar en una base de datos)
Un archivo de texto no requiere grandes recursos del servidor.

Creación y carga del archivo de texto.

Confeccionaremos un libro de visitas de un sitio web.
La página principal dispondremos de dos hipervínculos (HyperLink), el primero irá al formulario de carga y el segundo al listado del contenido del archivo.

La página Default.aspx:

El primer control HyperLink nos lleva al formulario web que permite cargar el nombre del visitante, su país y los comentarios.
El formulario web requiere tres objetos de la clase TextBox, al tercero donde se ingresan los comentarios debemos inicializar la propiedad TextMode con el valor MultiLine.
Disponemos un control de tipo HyperLink para poder retornar a la página principal.

Cuando se presiona el botón confirmar procedemos a almacenar los datos del formulario en el archivo de texto, si existe los agregamos al final, en caso que no exista se crea el archivo.
Mostramos finalmente en una label que se almacenaron los datos.
El código completo para registrar los datos es:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class Comentarios : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        StreamWriter escritor = new StreamWriter( this.Server.MapPath(".") + "/" + "visitas.txt", true);
        escritor.WriteLine("Nombre:" + this.TextBox1.Text);
        escritor.WriteLine("<br />");
        escritor.WriteLine("Pais:" + this.TextBox2.Text);
        escritor.WriteLine("<br />");
        escritor.WriteLine("Comentarios<br />");
        escritor.WriteLine(this.TextBox3.Text);
        escritor.WriteLine("<br />");
        escritor.WriteLine("<hr />");
        escritor.Close();
        Label4.Text = "Datos Registrados";
    }
}

Primero importamos el espacio de nombres donde está declarada la clase StreamWriter:

using System.IO;

Cuando se presiona el botón confirmar creamos un objeto de la clase StreamWriter y le pasamos en el constructor el path y nombre del archivo a abrir o crear según sea el caso.
Para obtener el directorio actual utilizamos el método MapPath del objeto Server.

El valor true que le pasamos en el constructor significa que si el archivo no existe en el servidor en la carpeta especificada se procede a su creación y en el caso que si existe se procede a su apertura y posicionado del puntero de archivo al final del mismo.

El método WriteLine de la clase StreamWriter permite almacenar una línea en el archivo de texto y el posterior ingreso en forma automática del salto de

Cuando finalizamos de trabajar con el archivo procedemos a cerrarlo:

escritor.Close();

Lectura del archivo de texto.

Creamos una página donde mostraremos todos los datos almacenados en el archivo de texto visitas.txt.
El archivo de texto almacena los datos de los visitantes y las marcas HTML básicas para hacer los saltos de línea y líneas separadoras entre comentarios, solo nos queda leer el archivo e ir almacenándolo en la Label para que lo muestre.
Podemos disponer un control de tipo HyperLink para retornar a la página principal.

El código necesario para leer y cargar los datos en la Label1 es:

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Listado : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        StreamReader lector = new StreamReader(this.Server.MapPath(".") + "/" + "visitas.txt");
        String linea;
        linea = lector.ReadLine();
        do
        {
            Label1.Text += linea;
            linea = lector.ReadLine();
        }while(linea!=null);
        lector.Close();
    }
}

Importamos el espacio de nombres donde está declarada la clase StreamReader:

using System.IO;

Procedemos a realizar la apertura del archivo, indicando el camino donde se encuentra.

Antes de la estructura repetitiva procedemos a leer la primer línea del archivo. El método ReadLine de la clase StreamReader retorna el contenido de toda una línea del archivo de texto. En caso que no haya más líneas en el archivo de texto el método ReadLine retorna el valor null.

El while nos permite recorrer todo el archivo y cargar cada línea leída en la Label1.

Finalmente procedemos a cerrar el archivo:

        lector.Close();

Y aqui tenéis el PROYECTO COMPLETO

Un comentario el “TUTORIAL II ASP.NET: Archivos de texto

  1. Alexis
    octubre 22, 2012

    gracias amigo!! me sirvio bastante😉

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Información

Esta entrada fue publicada en julio 4, 2012 por en .NET, Artículo, ASP, Programación C#, Web y etiquetada con , , , , , , , , .
A %d blogueros les gusta esto: