Usuário com melhor resposta
PREENCHER UM DATA GRID ATRAVÉS DE UM TXT

Pergunta
-
Bom dia Pessoal,
Preciso preencher um data grid através de uma importação de um arquivo txt.
Ao clicar em abrir ele vai carregar o arquivo com o seguinte formato:
1,1084.235,954.819,99.180
2,1084.181,954.352,99.186
3,1083.715,954.401,99.189
4,1083.769,954.867,99.183
5,1083.974,954.618,99.185A cada "," seria a separação de cada coluna.
Respostas
-
Olá Leandro,
Tente o seguinte código:
private void PegarDadosArquivo(string path)
{
StreamReader srFicheiro = new StreamReader(path);
try
{
string linha = srFicheiro.ReadLine();
string[] dados;
int count = 0;
while (linha != null)
{
dados = linha.Split(',');
dataGridView1.Rows.Insert(count, dados);
linha = srFicheiro.ReadLine();
count++;
}
}
catch (IOException ex)
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
srFicheiro.Close();
}
}Se te ajudou favor de marcar como resposta.
- Sugerido como Resposta Timóteo Nkawa segunda-feira, 8 de outubro de 2018 13:51
- Marcado como Resposta Leandro A. Martins segunda-feira, 8 de outubro de 2018 14:19
Todas as Respostas
-
Olá Leandro,
Tente o seguinte código:
private void PegarDadosArquivo(string path)
{
StreamReader srFicheiro = new StreamReader(path);
try
{
string linha = srFicheiro.ReadLine();
string[] dados;
int count = 0;
while (linha != null)
{
dados = linha.Split(',');
dataGridView1.Rows.Insert(count, dados);
linha = srFicheiro.ReadLine();
count++;
}
}
catch (IOException ex)
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
srFicheiro.Close();
}
}Se te ajudou favor de marcar como resposta.
- Sugerido como Resposta Timóteo Nkawa segunda-feira, 8 de outubro de 2018 13:51
- Marcado como Resposta Leandro A. Martins segunda-feira, 8 de outubro de 2018 14:19
-
-
Aproveitando o tópico Timoteo.
Estou querendo fazer a seguinte ação.
Percorrer os valores dessa lista e para cada linha ele vai executar um comando.
Como eu faço para percorrer essa lista ?
Tentando exemplificar seria isso:
int ponto; double norte; double leste; double cota; Percorre linha { para cada linha mudaria o valor de norte, leste e cota }
-
Olá Leandro,
Será que querre que fique assim?
while (linha != null)
{
dados = linha.Split(',');
dataGridView1.Rows.Insert(count, dados);
ponto = (int.Parse(dados[0])) + 2;
norte = (int.Parse(dados[1])) * 3;//Precisará tirar os pontos nos valores, depende do teu sistema.
leste = (int.Parse(dados[2])) * 2;
cota = (int.Parse(dados[3])) * 4;
string novosValores = string.Format("O novos valores são: ponto = {0} norte = {1} leste = {2} cota = {3}", ponto, norte, leste, cota);
MessageBox.Show(novosValores);
linha = srFicheiro.ReadLine();
count++;
}Abraço!
-
Obrigado pela resposta Timóteo novamente.
Na verdade não quero alterar os valores que serão importados do txt.
Em um outro botão vai pegar os valores de cada linha e atribuir a aquelas variáveis que citei antes.
Fazer um loop em cima disso.
-
Acabei resolvendo o meu problema da seguinte forma
for (Int32 i = 0; i < count; i++) { ponto = dataGridView1.Rows[i].Cells[0].Value.ToString(); norte = Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value.ToString()); leste = Convert.ToDouble(dataGridView1.Rows[i].Cells[2].Value.ToString()); cota = Convert.ToDouble(dataGridView1.Rows[i].Cells[3].Value.ToString()); }