Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9

Считать данные из DataGridView универсальным способом

02.03.2016, 12:34. Показов 1807. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Например: Существует множество текстовых файлов со столбцами и строками:

Дата---------IP--------номер
25.10.2014---124.12----123
26.10.2014---023.12----124

В разных файлах столбцов разное количество , то есть например в другом файле может добавиться столбец

Дата---------IP--------номер----Индекс
25.10.2014---124.12----123------1
26.10.2014---023.12----124------2

Мне нужно считать данные с файла и вывести в таблицу DataGridView, при этом чтобы независимо от выбранного файла в таблице DataGridView создавалось столько столбцов, сколько находится в текстовом файле(их может быть около 20).
Облазил весь форум, ничего похожего не нашел. Помогите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2016, 12:34
Ответы с готовыми решениями:

Считать данные в DataGridView универсальным способом
Здравствуйте. Например: Существует файл с данными в формате .do При выводе данных в DataGridView все данные выводятся в одит...

Считать данные из DataGridView
Не могу считать данные из таблицы. a = new string; // 1 b = new string; // 2 int i; ...

Считать данные из непривязанного DataGridView
Доброе время суток! Я читаю строки из DataGridView так. private void btnSave_Click(object sender, EventArgs e) { ...

14
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
02.03.2016, 12:51
sanek007, Какой формат данных? Приведите пример файла.
0
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
02.03.2016, 13:19  [ТС]
Storm23, файл формата .txt или .log
0
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
02.03.2016, 13:24  [ТС]
Storm23, Вот пример файлов.
Вложения
Тип файла: txt primer1.txt (294 байт, 17 просмотров)
Тип файла: txt primer2.txt (320 байт, 5 просмотров)
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
02.03.2016, 13:37
Цитата Сообщение от sanek007 Посмотреть сообщение
считать данные с файла и вывести в таблицу DataGridView
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Data;
using System.IO;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication333
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            var table = LoadCSV("C:\\primer1.txt", Encoding.Default);
            var dgv = new DataGridView {DataSource = table, Parent = this, Dock = DockStyle.Fill, AllowUserToAddRows = false};
        }
 
        /// <summary>
        /// Load CSV file into DataTable
        /// </summary>
        private DataTable LoadCSV(string file, Encoding enc)
        {
            var res = new DataTable();
            //load lines
            var lines = File.ReadAllLines(file, enc);
            //parse header
            foreach (var name in lines[0].Split(' '))
                res.Columns.Add(name);
            //parse rows
            for (int i = 1; i < lines.Length; i++)
                res.Rows.Add(lines[i].Trim().Split(' '));
 
            return res;
        }
    }
}
1
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
02.03.2016, 17:00  [ТС]
Storm23, Спасибо большое!

Добавлено через 2 часа 36 минут
Storm23, Подскажите а как сделать тоже самое, только чтобы файл я мог выбрать сам. Пробовал сделать с помощью menuStrip и openFileDialog но не вышло(
0
82 / 82 / 51
Регистрация: 25.02.2016
Сообщений: 243
02.03.2016, 17:26
C#
1
2
3
4
var opd = new OpenFileDialog();
            var table = new DataTable();
            if (opd.ShowDialog() == DialogResult.OK)
                table = LoadCSV(opd.FileName, Encoding.Default);
Вместо
C#
1
var table = LoadCSV("C:\\primer1.txt", Encoding.Default);
Не проверял, но вроде бы должно работать.
0
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
04.03.2016, 14:30  [ТС]
Storm23, Скажите пожалуйста, как в этой же программе сделать проверку строки на символ #, если строка начинается с символа "#", то осуществляется переход к следующей строке. А там где строка начинается с "#Поле" пропустить запись "#Поле". .
Вложения
Тип файла: txt prob3.txt (387 байт, 3 просмотров)
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
04.03.2016, 16:29
Цитата Сообщение от sanek007 Посмотреть сообщение
как в этой же программе сделать проверку строки на символ #, если строка начинается с символа "#", то осуществляется переход к следующей строке. А там где строка начинается с "#Поле" пропустить запись "#Поле".
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        /// <summary>
        /// Load CSV file into DataTable
        /// </summary>
        private DataTable LoadCSV(string file, Encoding enc)
        {
            var res = new DataTable();
            //parse lines
            foreach(var line in File.ReadLines(file, enc))
            if (line.StartsWith("#"))
            {
                //parse header
                if (line.StartsWith("#Поле"))
                foreach (var name in line.Split(' ').Skip(1))
                    res.Columns.Add(name);
            }else
                //parse rows
                res.Rows.Add(line.Trim().Split(' '));
 
            return res;
        }
1
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
09.03.2016, 11:14  [ТС]
Storm23, Скажите пожалуйста, а как пропустить этот символ "пробела"? Название: 1.png
Просмотров: 93

Размер: 10.7 Кб
if (line.Ends("ЛОЛС "))
{
???
}
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
09.03.2016, 11:41
Цитата Сообщение от sanek007 Посмотреть сообщение
а как пропустить этот символ "пробела"
C#
1
2
if (line.Trim().Ends("ЛОЛС")){
}
0
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
09.03.2016, 12:40  [ТС]
Storm23, ViterAlex, Возможно я не правильно выразился, в некоторых файлах после поля "Лолс" идет пробел, который выделен на скриншоте, из-за этого в программе создается 1 пустой столбец. Как мне сделать так, чтобы этот пробел пропускался и пустой столбец не создавался? В коде я предполагаю должно быть как-то так.. Только как дальше..??
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private DataTable LoadCSV(string file, Encoding enc)
        {
            var res = new DataTable();
            //parse lines
            foreach(var line in File.ReadLines(file, enc))
            if (line.StartsWith("#"))
            {
                if (line.EndsWith("ЛОЛС ")){ 
         // тут я не знаю(
}
                //parse header
                if (line.StartsWith("#Поле"))
                foreach (var name in line.Split(' ').Skip(1))
                    res.Columns.Add(name);
            }else
                //parse rows
                res.Rows.Add(line.Trim().Split(' '));
 
            return res;
        }
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
09.03.2016, 12:47
Следует пропускать пустые элементы массива:
C#
1
2
foreach (var name in line.Split(' ', StringSplitOptions.RemoveEmptyEntries).Skip(1))
    res.Columns.Add(name);
1
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
09.03.2016, 14:26  [ТС]
ViterAlex,
0
0 / 0 / 0
Регистрация: 02.03.2016
Сообщений: 9
09.03.2016, 14:56  [ТС]
ViterAlex, все разобрался, спасибо.
C#
1
2
foreach (var name in line.Split(new char [] {' '}, StringSplitOptions.RemoveEmptyEntries).Skip(1))
                                res.Columns.Add(name);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.03.2016, 14:56
Помогаю со студенческими работами здесь

Не могу считать данные из DataBase.mdf в DataGridView
Народ, уже 2 недели мучаюсь и ни как не могу понять, почему не могу считать данные из DataBase.mdf в DataGridView1( уже разобрал кучу...

DataGridView: Как считать/записать данные из ячеек в переменную?
Как считать(записать) данные из ячеек в переменную?

Считать данные из бд в DataGridView не удаляя при этом родные столбцы
Можно ли считать данные из бд в dataGridView не удаляя при этом родные столбцы ??? Дело в том, что один метод нашел, но он удаляет из мой...

Програмным способом переместить курсор в DataGridView
ребята - помогите програмным способом переместить курсор в DataGridView - полный анализ , хоть убейте не могу

Вставка строк в datagridview программным способом + сортировка
Есть одна таблица (table). Есть datagridview, в которую я вывожу данные о строке, можно назвать карточкой клиента (card1). Порядок строк...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru