Usuário com melhor resposta
Como ler arquivo .txt em C# com dados separados em " ; "

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.
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
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
-
Ótima solução do Olavo e também já existe algo parecido no forum C#:
Elcio João de Lima - VB6, C#, Plataforma .NET e WM [Se o post foi útil, não esqueça de marcá-lo. Obrigado] -
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.