none
Armazenar Lista em Arquivo txt RRS feed

  • Pergunta

  • Tenho uma lista no formulario cliente e gostaria de exportar o conteúdo da lista que armazena os dados do formulario para um arquivo texto. Tentei com streamwriter mas não deu certo.

    Aguardo ajuda urgente !

    terça-feira, 10 de dezembro de 2013 14:37

Respostas

  • Você terá que fazer linha a linha, faça assim:

    foreach(var cliente in lista)
    { 
    sw.WriteLine(cliente.seuCampo + "" + cliente.outroCampo);
    }


    • Editado Guilherme da Luz terça-feira, 10 de dezembro de 2013 19:21
    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    terça-feira, 10 de dezembro de 2013 16:46
  • Opa!

    Sugestão:

     int n = lista.Count;
    
            for (int i = 0; i < n; i++)
            {
                sw.WriteLine(lista[i].ToString());
            }

    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    quarta-feira, 11 de dezembro de 2013 07:34
  • StreamWriter sw = null;   

    try {

    sw = new StreamWriter(caminho, true, Encoding.ASCII);

        foreach (var cliente in lista)    {         sw.WriteLine(cliente.Propriedade); } } catch (Exception) { throw; } finally { if (sw != null) { sw.Close(); } }


    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    quarta-feira, 11 de dezembro de 2013 16:56
  • Nadia apenas para somar com as respostas dos companheiros pode ser feito da seguinte maneira:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            //Classe cliente que será persistida no arquivo txt
            class Cliente
            {
                public int Id { get; set; }
                public string Nome { get; set; }
                public string Email { get; set; }
            }
    
            static void Main(string[] args)
            {
                //criação da lista com suas propriedades
                var lista = new List<Cliente>()
                {
                    new Cliente(){Id=1, Nome="Pablo", Email="pablo@hotmail.com"},
                    new Cliente(){Id=2, Nome="Maria", Email="maria@hotmail.com"},
                    new Cliente(){Id=3, Nome="josé", Email="jose@hotmail.com"}
                };
    
                //string com o caminho e nome do arquivo que será
                //criado e que irá conter o conteúdo da lista
                string CaminhoNomeArquivo = @"C:/Users/servidor/Desktop/arquivo.txt";
    
                //verifico se o arquivo NÃO exeiste no caminho e com o nome
                //que será criado, e se não existir...
                if (!System.IO.File.Exists(CaminhoNomeArquivo))
                {
                    //crio o arquivo txt com o nome e local especificado pela string
                    //e fecho o arquivo
                    System.IO.File.Create(CaminhoNomeArquivo).Close();
                    
                }
    
                //instância de um objeto do tipo TextWriter onde informo
                //que adicionarei um texto ao arquivo e texto existente
                //e no parâmetro informo o nome e caminho do arquivo em questão
                System.IO.TextWriter escrita = System.IO.File.AppendText(CaminhoNomeArquivo);
    
                //percorro a lista  e para cada item
                foreach (var item in lista)
                {
                    //escrevo no arquivo separando as propriedades por pipe
                    //e a cada objeto cliente escrevo em uma linha
                    escrita.Write(item.Id + " | " + item.Nome + " | " + item.Email);
                    escrita.Write(Environment.NewLine);
    
                }
    
                //fecho o objeto TextWriter
                escrita.Close();
            }
        }
    }
    

    Resultado obtido do arquivo gerado na área de trabalho:

    Abraços e espero ter ajudado!


    Pablo Batista Cardoso



    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:07
    quarta-feira, 11 de dezembro de 2013 17:06
  • Boa tarde nadia,

    Você chegou a testar alguma sugestão que lhe foi passada?

    Caso alguma delas funcione não esqueça de marcar como resposta para fechar a sua Thread, e, caso tenha encontrado alguma solução poste a mesma para auxiliar outros usuários.

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Msdn Community Support

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    quarta-feira, 18 de dezembro de 2013 14:01

Todas as Respostas

  • Poste o seu código:

    De qualquer forma segue um exemplo:

    string nomeArquivo = "C:/seuarquivo.txt";
    File.Create(nomeArquivo).Close();
    TextWriter arquivo = File.AppendText(nomeArquivo);
    arquivo.WriteLine("seu texto");
    arquivo.Close();

    terça-feira, 10 de dezembro de 2013 14:47
  • eu precisava colocar a lista inteira, essa é minha duvida. Segue o codigo :

    public static void Exportar(List<Cliente> lista)

    {

         StreamWriter sw = new StreamWriter(caminho,true,Encoding.ASCII);

         int n = lista.Count;

         for( int i = 0; i < n; i++)

        {

             sw.WriteLine(lista.ToList());

    }

    sw.Close();

    }

    No arquivo texto aparece apenas :

    System.Collections.Generic.List'1[Projeto.Cliente]

    terça-feira, 10 de dezembro de 2013 16:13
  • Você terá que fazer linha a linha, faça assim:

    foreach(var cliente in lista)
    { 
    sw.WriteLine(cliente.seuCampo + "" + cliente.outroCampo);
    }


    • Editado Guilherme da Luz terça-feira, 10 de dezembro de 2013 19:21
    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    terça-feira, 10 de dezembro de 2013 16:46
  • Opa!

    Sugestão:

     int n = lista.Count;
    
            for (int i = 0; i < n; i++)
            {
                sw.WriteLine(lista[i].ToString());
            }

    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    quarta-feira, 11 de dezembro de 2013 07:34
  • StreamWriter sw = null;   

    try {

    sw = new StreamWriter(caminho, true, Encoding.ASCII);

        foreach (var cliente in lista)    {         sw.WriteLine(cliente.Propriedade); } } catch (Exception) { throw; } finally { if (sw != null) { sw.Close(); } }


    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    quarta-feira, 11 de dezembro de 2013 16:56
  • Nadia apenas para somar com as respostas dos companheiros pode ser feito da seguinte maneira:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            //Classe cliente que será persistida no arquivo txt
            class Cliente
            {
                public int Id { get; set; }
                public string Nome { get; set; }
                public string Email { get; set; }
            }
    
            static void Main(string[] args)
            {
                //criação da lista com suas propriedades
                var lista = new List<Cliente>()
                {
                    new Cliente(){Id=1, Nome="Pablo", Email="pablo@hotmail.com"},
                    new Cliente(){Id=2, Nome="Maria", Email="maria@hotmail.com"},
                    new Cliente(){Id=3, Nome="josé", Email="jose@hotmail.com"}
                };
    
                //string com o caminho e nome do arquivo que será
                //criado e que irá conter o conteúdo da lista
                string CaminhoNomeArquivo = @"C:/Users/servidor/Desktop/arquivo.txt";
    
                //verifico se o arquivo NÃO exeiste no caminho e com o nome
                //que será criado, e se não existir...
                if (!System.IO.File.Exists(CaminhoNomeArquivo))
                {
                    //crio o arquivo txt com o nome e local especificado pela string
                    //e fecho o arquivo
                    System.IO.File.Create(CaminhoNomeArquivo).Close();
                    
                }
    
                //instância de um objeto do tipo TextWriter onde informo
                //que adicionarei um texto ao arquivo e texto existente
                //e no parâmetro informo o nome e caminho do arquivo em questão
                System.IO.TextWriter escrita = System.IO.File.AppendText(CaminhoNomeArquivo);
    
                //percorro a lista  e para cada item
                foreach (var item in lista)
                {
                    //escrevo no arquivo separando as propriedades por pipe
                    //e a cada objeto cliente escrevo em uma linha
                    escrita.Write(item.Id + " | " + item.Nome + " | " + item.Email);
                    escrita.Write(Environment.NewLine);
    
                }
    
                //fecho o objeto TextWriter
                escrita.Close();
            }
        }
    }
    

    Resultado obtido do arquivo gerado na área de trabalho:

    Abraços e espero ter ajudado!


    Pablo Batista Cardoso



    • Sugerido como Resposta Giovani Cr quarta-feira, 18 de dezembro de 2013 14:02
    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:07
    quarta-feira, 11 de dezembro de 2013 17:06
  • Boa tarde nadia,

    Você chegou a testar alguma sugestão que lhe foi passada?

    Caso alguma delas funcione não esqueça de marcar como resposta para fechar a sua Thread, e, caso tenha encontrado alguma solução poste a mesma para auxiliar outros usuários.

    Att,


    Giovani Cruzara – Microsoft Contingent Staff

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Msdn Community Support

    Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Giovani Cr quinta-feira, 19 de dezembro de 2013 10:08
    quarta-feira, 18 de dezembro de 2013 14:01