LAYERDEV

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Criar um post de Mensagens sem utilizar banco de dados e sim arquivos.

por Ebenézer de Souza em 12/5/2007

Olá a todos, neste artigo irei mostrar como criar um arquivo, escrever nele e depois carrega-los em um GridView.

Vamos criar um espaço para que o usuário digite uma mensagem no seu site e ao invés de salvar as informações em um banco de dados vamos criar um arquivo e salvar a mensagem neste arquivo. Depois vamos listar todas as mensagens enviadas para você.

Utilizarei o conceito de generics também, que vocês já devem conhecer. Ok!

 

Vamos lá, crie um novo WebSite. Adicione uma nova pasta no site com o nome Mensagens para onde enviarei os arquivos com as mensagens.

 

Monte a tela da seguinte forma.

 

 

 

 

 

Código HTML do GridView

 

<asp:GridView ID="grdMsg" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px" CellPadding="4" GridLines="Horizontal" ShowHeader="False">

<FooterStyle BackColor="White" ForeColor="#333333" />

<RowStyle BackColor="White" ForeColor="#333333" />

<SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />

<PagerStyle BackColor="#336666" ForeColor="White" HorizontalAlign="Center" />

<HeaderStyle BackColor="#336666" Font-Bold="True" ForeColor="White" />

<Columns>

            <asp:TemplateField>

                  <ItemTemplate>

                        Enviada por:

                        <%# Eval("Nome")%>

                        <br />

                        <b>

                            <%# Eval("Msg") %>

                        </b>

                        <br />

                        Data de Envio:

                        <%# Eval("DT_Envio") %>

                 </ItemTemplate>

             </asp:TemplateField>

         </Columns>

 </asp:GridView>

 

Vamos criar uma classe Mensagem. Segue:

 

using System;

 

/// <summary>

/// Summary description for Mensagem

/// </summary>

public class Mensagem

{

      public Mensagem()

      {

      }

 

    private string nome;

    private string msg;

    private DateTime dtEnvio;

 

    public string Nome

    {

        get { return nome; }

        set { nome = value; }

    }

      

    public string Mensagem

    {

        get { return msg; }

        set { msg = value; }

    }

 

    public DateTime DT_Envio

    {

        get { return dtEnvio; }

        set { dtEnvio = value; }

    }

}

 

Após criar o objeto vamos criar os métodos para salvar a mensagem.

 

Método que recebe um objeto do tipo Mensagem, cria o arquivo armazena as informações nele

e salva na pasta que criamos chamada Mensagens.

 

private void AddMensagem(Mensagem msg)

    {

        // Variável que recebe o caminho da pasta Mensagem no servidor

        string pastNome = Server.MapPath("Mensagens");

 

        // Para darmos o nome do arquivo vamos utilizar a

        // propriedade Ticks da hora atual mais a classe

        // Random que irá pegar números aleatórios até 100.

        Random random = new Random();

        string fileName = pastNome + @"\";

  fileName += DateTime.Now.Ticks.ToString() + random.Next(100).ToString();

      

        // Cria o arquivo

        FileInfo newFile = new FileInfo(fileName);

       

        // Para escrever no arquivo vamos utilizar

        // a classe StreamWriter

        StreamWriter w = newFile.CreateText();

 

        // Neste momento vamos escrever as informações da

        // mensagem no arquivo

        w.WriteLine(msg.Nome);

        w.WriteLine(msg.DT_Envio.ToString());

        w.WriteLine(msg.Msg);

        w.Flush();

        w.Close();

    }

 

 

Agora vamos fazer o método do botão Enviar que irá criar uma mensagem

e passar como parâmetro do método AddMensagem.

 

protected void btnEnviar_Click(object sender, EventArgs e)

    {

        // Cria um novo objeto Mensagem

        Mensagem msg = new Mensagem();

 

        // Add os valores digitados ao objeto

        msg.Nome = txtNome.Text;

        msg.DT_Envio = DateTime.Now;

        msg.Msg = txtMsg.Text;

 

        // Chama o método para salvar a mensagem

        AddMensagem(msg);

 

    }

 

Após Salvar a mensagem vamos criar os métodos para trazer todas as

mensagens e listá-las no grdMsg.

 

Agora nós vamos ter que abrir todos os arquivos le as informações

contidas nele e transformá-lo em um objeto do tipo Mensagem e para isso

vamos utilizar o seguinte método que recebe o arquivo e retorna a Mensagem:

 

private Mensagem GetMsgToFile(FileInfo fileItem)

    {

        // Cria um objeto Mensagem

        Mensagem msg = new Mensagem();

 

        // Utilizaremos a classe StreamReader para ler as informações

        // contidas no arquivo

        StreamReader r = fileItem.OpenText();

       

        // Lendo linha por linha e adicionando no objeto.

        msg.Nome = r.ReadLine();

        msg.DT_Envio = DateTime.Parse(r.ReadLine());

        msg.Msg = r.ReadLine();

        r.Close();

 

        // Retornando a mensagem preenchida

        return msg;

    }

 

 

 

Como falei no início do artigo nós iríamos utilizar Generics e para isso

vamos criar um método GetAllMensagens que irá retorar uma List que só

contem objetos do tipo Mensagem, para isso não se esqueça de fazer

referência ao using System.Collections.Generic;

 

Segue:

 

private List<Mensagem> GetAllMensagens()

    {

        // Variável que recebe o caminho da pasta Mensagem no servidor

        string pastNome = Server.MapPath("Mensagens");

 

        // Cria uma List de Mensagens

        List<Mensagem> _listMsg = new List<Mensagem>();

       

        // Variável de informações do diretório passado como parâmetro

  // que nesse caso estamos passando o caminho da pasta

  // onde conte as mensagens

        DirectoryInfo dirInfMsg = new DirectoryInfo(pastNome);

 

        // O método GetFiles retorna um array de FileInfo e dessa forma

        // podemos percorrer todos os arquivos do diretório

        foreach (FileInfo fileItem in dirInfMsg.GetFiles())

        {

            // Adicionando o

            _listMsg.Add(GetMsgToFile(fileItem));

        }

 

        // Retorna a List de Mensagens

        return _listMsg;

    }

 

Para finalizar vamos criar o método do LinkButton para listar as

mensagens no grid utilizando os métodos que nós acabamos de criar.

 

 

protected void listMsg_Click(object sender, EventArgs e)

    {

        // Atribui ao DataSource do Grid a List de Mensagem

        this.grdMsg.DataSource = GetAllMensagens();

        this.grdMsg.DataBind();

    }

 

Execute e aplicação, você deverá ter a seguinte tela:

 

 

 

Finalizando...

 

Neste artigo aprendemos como utilizar as classes DirectoryInfo, FileInfo, StreamWriter e StreamReader para manipulação de arquivos e diretórios e como utilizá-los para criar um post de mensagens sem armazena-lás no banco.

 

Espero ter ajudado e qualquer sujestões ou dúvidas segue email: ebenezer05@gmail.com

 

Abraços...

voltar   comente  subir

Download Copy





 
Ebenézer de Souza Possui Superior em Bacharelado em Sistemas de informação e é desenvolvedor de aplicações e sistemas web na plataforma .NET. Atua como analista/programador na Corretora de Seguros BRB e escreve artigos para comunidade ECodigo.com.br



Comentários:


Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Utilizando DLL de acesso a dados genérica – Parte 1
Pesquisando informações que estejam entre as datas Informadas com Stored Procedure.
Criando um método para exibir vários alerts na tela
Utilizando método Sort em uma lista genérica
Criando uma DLL de acesso a dados Genérica utilizando o namespace System.Data.Comom
Neste artigo irei mostrar como utilizar o controle ImageMap que veio na versão 2.0 do Asp.NET.
Criar um post de Mensagens sem utilizar banco de dados e sim arquivos.
Criando parâmetros não obrigatórios em procedures
Adicionar primeiro dados em um GridView e depois na base de dados usando Transaction.




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...

Promoções de livros móveis .NET

Baixa agora o seu e aprenda a programar....




NETITC