Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 02.07.2017
Сообщений: 11

Добавить данные из .txt в DataGridView

06.07.2017, 16:34. Показов 9602. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В файле представлены данные в 4 столбца, все они string, разделены пробелом.
Как выполнить их считывание в datagridview? Читала много информации по этому поводу, но знаний не хватает, чтобы переделать те коды под себя.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2017, 16:34
Ответы с готовыми решениями:

Как из блокнота (txt) открыть данные и занести в таблицу dataGridView, редактировать и снова сохранить в txt
Нужно чтобы при нажатии кнопки открывалось окно выбора текст фаила, и данные из этого фаила попадали в dataGridView, после...

Как добавить строку из txt в DataGridView?
Привет!как из txt файла добавить строку в datagridView ,как я пробовала не получается using (StreamReader sr = new...

Не импортируются данные из txt в datagridview
Имеется база данных подключенная к проекту. Код нашел на этом форуме. Экспорт работает, все сохраняет, а вот при импорте выводит сообщение....

11
 Аватар для 1231231ghacking
102 / 106 / 62
Регистрация: 19.11.2015
Сообщений: 380
06.07.2017, 16:47
C#
1
2
3
4
5
6
7
8
9
            string[] lines = File.ReadAllLines("файл.txt");
            foreach (var str in lines)
            {
                var row = new DataGridViewRow();
                row.CreateCells(dataGridView1);
                for (int i = 0; i < str.Split(' ').Count(); i++)
                    row.Cells[i].Value = str.Split(' ')[i];
                dataGridView1.Rows.Add(row);
            }
0
0 / 0 / 0
Регистрация: 02.07.2017
Сообщений: 11
06.07.2017, 17:04  [ТС]
1231231ghacking, ругается на

C++
1
2
string[] lines = File.ReadAllLines("raspisan.txt");
             foreach(var str in lines)
А я понятия не имею как исправить...
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
06.07.2017, 18:49
Янч, добавьте пространство имен где-нибудь сверху
C++
1
using namespace System::IO;
0
0 / 0 / 0
Регистрация: 02.07.2017
Сообщений: 11
06.07.2017, 19:13  [ТС]
Sklifosofsky, оно добавлено, проблема еще в том, что предложили вариант на c#, я пишу на c++
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
06.07.2017, 19:16
Лучший ответ Сообщение было отмечено Янч как решение

Решение

Сорр=) Не сразу всек на каком языке писать надо, после дня с Барсиком все в голове припуталось
Перевел код 1231231ghacking
В файле должна быть кодировка UTF-8
C++
1
2
3
4
5
6
7
8
9
    array<String^>^ lines = File::ReadAllLines("файл.txt");
    for each(String^ str in lines)
    {
        DataGridViewRow^ row = gcnew DataGridViewRow();
        row->CreateCells(dataGridView1);
        for (int i = 0; i < str->Split(L' ')->Length; i++)
            row->Cells[i]->Value = str->Split(L' ')[i];
        dataGridView1->Rows->Add(row);
    }
1
0 / 0 / 0
Регистрация: 02.07.2017
Сообщений: 11
06.07.2017, 20:17  [ТС]
Sklifosofsky, извините за фривольность, но я вас обожаю! Вы решили мою проблему!

Добавлено через 58 минут
Sklifosofsky, а вы знаете как можно сохранить изменения в datagridview в этот же .txt?

Добавлено через 18 секунд
Sklifosofsky, а вы знаете как можно сохранить изменения в datagridview в этот же .txt?
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
06.07.2017, 21:55
Нечто похожее, только в обратном порядке
C++
1
2
3
4
5
6
7
8
9
10
    array<String^>^ lines = gcnew array<String^>(dataGridView1->RowCount);
    array<String^>^ values = gcnew array<String^>(dataGridView1->ColumnCount);
 
    for (int i = 0; i < dataGridView1->RowCount;++i)
    {
        for (int j = 0; j < dataGridView1->ColumnCount; ++j)
            values[j] = (String^)dataGridView1->Rows[i]->Cells[j]->Value;
        lines[i] = String::Join(L" ", values);
    }
    File::WriteAllLines("файл.txt", lines, System::Text::Encoding::UTF8);
Есть нюанс: при dataGridView1->AllowUserToAddRows = true; будет записываться одна лишняя пустая строка. Либо нужно выставить свойство false, либо выполнить проверку на это свойство и при true собирать коллекцию на одну строку меньше
И еще - если данных оооочень много, то лучше использовать потоковую запись в файл.
1
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 57
24.04.2018, 16:17
Здравствуйте! Могу ли я узнать, как все-таки убрать эту лишнюю пустую строку?
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
26.04.2018, 22:08
cppastronaut,
C++
1
2
3
4
5
6
7
8
9
10
    array<String^>^ lines = gcnew array<String^>(dataGridView1->RowCount - (dataGridView1->AllowUserToAddRows ?1:0)); // проверка тут
    array<String^>^ values = gcnew array<String^>(dataGridView1->ColumnCount);
 
    for (int i = 0; i < dataGridView1->RowCount;++i)
    {
        for (int j = 0; j < lines->Length; ++j) //количество строк указывает размер массива
            values[j] = (String^)dataGridView1->Rows[i]->Cells[j]->Value;
        lines[i] = String::Join(L" ", values);
    }
    IO::File::WriteAllLines("файл.txt", lines, System::Text::Encoding::UTF8);
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 57
29.04.2018, 19:14
При таком раскладе получается ошибка:

An unhandled exception of type 'System.IndexOutOfRangeException' occurred in firstapp.exe
Additional information: Индекс находился вне границ массива.

И проблема, как было выяснено методом научного тыка, в первой строке - как раз при наличии этой проверки при записи в файл вылетает эта ошибка. Я попыталась вынести это условие отдельно, но не помогло, а на какое-то другое решение не хватает квалификации... В чем может быть загвоздка?
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
30.04.2018, 16:37
cppastronaut, сор, не тот цикл поправил
C++
1
2
3
4
5
6
7
8
9
10
    array<String^>^ lines = gcnew array<String^>(dataGridView1->RowCount - (dataGridView1->AllowUserToAddRows ?1:0)); // проверка тут
    array<String^>^ values = gcnew array<String^>(dataGridView1->ColumnCount);
 
    for (int i = 0; i < lines->Length;++i) //количество строк указывает размер массива
    {
        for (int j = 0; j < dataGridView1->ColumnCount; ++j) 
            values[j] = (String^)dataGridView1->Rows[i]->Cells[j]->Value;
        lines[i] = String::Join(L" ", values);
    }
    IO::File::WriteAllLines("файл.txt", lines, System::Text::Encoding::UTF8);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2018, 16:37
Помогаю со студенческими работами здесь

Как данные из txt файла залить в DataGridView
DataGridView имеет 7 столбцов

Добавить данные в datagridView
У меня есть datagridview с combobox 'сом внутри. Для добавления туда новых данных создал вторую форму и там создал еще datagridview с той...

Из Textbox добавить данные в DataGridView
Здравствуйте! Помогите, пожалуйста! Только начинаю работу с Visual Studio 2010 C#. Мне нужно из текстбоксов занести информацию в таблицу...

Добавить данные из DateTimePicker в DataGridView
Доброго времени суток! Собственно возможно ли переместить данные из DateTimePicker в DataGridView?

Как сделать фильтр по маске в DataGridView, если данные берутся из txt файла
Задача в том, чтобы реализовать динамический поиск по datagridview. Если считывать данные из xml файла, то проблем нет, код приведенный...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru