none
Como ler arquivo .txt em C# com dados separados em " ; " RRS feed

  • Pergunta

  • Olá pessoal,

     

    Estou com a seguinte dúvida: como posso ler um arquivo .txt (originado de um arquivo .xml) com informações dispostas em uma linha entre " ; ", como o seguinte exemplo:

    19/05;19:23;A. Campanella - São Caetano do Sul;

    ...Em que eu necessitaria dos parâmetros para disponibilizá-los em um GridView.

    No caso, com o seguinte exemplo posso criar um arquivo.txt:

    string arquivo = @"C:\info.txt" ;

    StreamWriter escrever = new StreamWriter(arquivo);
    escrever.WriteLine("texto");

    escrever.Close();

    Mas como posso fazer com que o arquivo seja lido e fizesse com que cada dado disposto entre ponto-e-vírgula fosse atribuído em uma variável para manipulá-la em um GridView?

     

    Aguardo resposta,

     

    Nathalia.

    sexta-feira, 15 de outubro de 2010 19:23

Respostas

  • Olá,

    fiz assim, espero que lhe ajude:

    primeiro, eu criei uma classe ficticia para receber os dados:

    public class Dados
      {
        public string data{get;set;}
        public string Hora{get;set;}
        public string Local{get;set;}
      }
    

    depois eu usei este metodo para ler e mandar para o gridview

    List<Dados>dadosLidos = new List<Dados>();      
          System.IO.StreamReader arquivo = new System.IO.StreamReader(@"C:\ler.txt");
          string linha = "";
          while (true)
          {
            linha = arquivo.ReadLine();
            if (linha != null)
            {
              string[] DadosColetados = linha.Split(';');
              dadosLidos.Add(new Dados { data = DadosColetados[0], Hora = DadosColetados[1], Local = DadosColetados[2] });
            }
            else
              break;
          }
          GridView1.DataSource = dadosLidos;
          GridView1.DataBind();
    

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Sugerido como Resposta Rui SantosModerator sexta-feira, 15 de outubro de 2010 20:50
    • Marcado como Resposta nathalia.ps segunda-feira, 18 de outubro de 2010 14:26
    sexta-feira, 15 de outubro de 2010 19:55

Todas as Respostas

  • Olá,

    fiz assim, espero que lhe ajude:

    primeiro, eu criei uma classe ficticia para receber os dados:

    public class Dados
      {
        public string data{get;set;}
        public string Hora{get;set;}
        public string Local{get;set;}
      }
    

    depois eu usei este metodo para ler e mandar para o gridview

    List<Dados>dadosLidos = new List<Dados>();      
          System.IO.StreamReader arquivo = new System.IO.StreamReader(@"C:\ler.txt");
          string linha = "";
          while (true)
          {
            linha = arquivo.ReadLine();
            if (linha != null)
            {
              string[] DadosColetados = linha.Split(';');
              dadosLidos.Add(new Dados { data = DadosColetados[0], Hora = DadosColetados[1], Local = DadosColetados[2] });
            }
            else
              break;
          }
          GridView1.DataSource = dadosLidos;
          GridView1.DataBind();
    

    Olavo Oliveira Neto
    Se for útil marque como resposta e faça um Developer feliz :)
    • Sugerido como Resposta Rui SantosModerator sexta-feira, 15 de outubro de 2010 20:50
    • Marcado como Resposta nathalia.ps segunda-feira, 18 de outubro de 2010 14:26
    sexta-feira, 15 de outubro de 2010 19:55
  • Ótima solução do Olavo e também já existe algo parecido no forum C#:

    http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/59f362ed-d9b8-4ac4-b4e9-7e455894cd4e/#30bb0256-b1cb-4013-b168-c381f8c884ab


    Elcio João de Lima - VB6, C#, Plataforma .NET e WM [Se o post foi útil, não esqueça de marcá-lo. Obrigado]
    sábado, 16 de outubro de 2010 04:42
  • Olá Olavo,

     

    Obrigado pela resposta. O código funcionou certinho, em que apenas instanciei o encoding de texto para reconhecer os caracteres especiais e apontuações, dessa forma:

    CultureInfo c1 = new CultureInfo("pt-BR");
    
        System.IO.StreamReader arquivo = new System.IO.StreamReader(@"C:\rodadas.txt", Encoding.GetEncoding(c1.TextInfo.ANSICodePage));
        
    

     

    Obrigado!

    Nathalia.

     

    segunda-feira, 18 de outubro de 2010 14:31