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

txt в DataGridView

25.05.2008, 17:40. Показов 6309. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте можно ли каким - нибудь способом выгрузить данные из txt в DataGridView.
Cпасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2008, 17:40
Ответы с готовыми решениями:

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

DataGridView в .txt
Добрый вечер. Делаю програмку. В DataGridView имею пять столбцов. Как построчно экспортировать текст в текстовый файл ? Подскажите...

Загрузка из txt в datagridview
Здравствуйте. У меня есть кнопка сохранения в txt, где сохраняются выборочно 3 столбца, из которых два сохраняются в формате hex разбив...

22
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
25.05.2008, 17:46
прикалывают меня такие вопросы...
что за данные?! как их надо отобразить?!
DataGridView создат для отображения табличных данных. если структура текста представляет возможном отобразить его как таблицу то можно.
вообщем задачу лучше опишите...
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
25.05.2008, 17:47  [ТС]
Вот файл его то и надо а вот как...
Вложения
Тип файла: txt Прайс.txt (1.8 Кб, 162 просмотров)
0
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
25.05.2008, 17:53
можно. по хорошему канеш надо все енто в БД хранить или хотя б XML воспользоваться... ну да ладно, сча рожу код
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
25.05.2008, 18:03  [ТС]
Цитата Сообщение от Levsha Посмотреть сообщение
можно. по хорошему канеш надо все енто в БД хранить или хотя б XML воспользоваться... ну да ладно, сча рожу код
Буду очень вам признателен
0
 Аватар для nervous.net.man
5 / 5 / 4
Регистрация: 25.06.2007
Сообщений: 85
25.05.2008, 18:48
файл отвратный, без разделителей, разбору не поддаётся!
смените формат!
0
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
26.05.2008, 16:53
думаю дальше сам догадаешься как доделать
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
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            BinaryReader br = new BinaryReader(File.Open(".//2.txt", FileMode.Open));
            char[] bf = br.ReadChars(92);
            DataTable tb = new DataTable();
            tb.Columns.Add(new DataColumn("ID"));
            tb.Columns.Add(new DataColumn("Фильм"));
            tb.Columns.Add(new DataColumn("Режиссер"));
            tb.Columns.Add(new DataColumn("Тип"));
            tb.Columns.Add(new DataColumn("Формат"));
            tb.Columns.Add(new DataColumn("Жанр"));
            tb.Columns.Add(new DataColumn("Колличетсво"));
            for (; ; )
            {
                bf = br.ReadChars(92);
                string str = null;
                DataRow row = tb.NewRow();
                for (int i = 2; i < 5; i++)
                    if (char.IsDigit(bf[i])) str += bf[i];
                row[0] = str; str = null;
                for (int i = 4; ; i++)
                    if (bf[i] != (char)9) str += bf[i];
                    else break;
                row[1] = str;
            }
        }
    }
Добавлено через 16 часов 34 минуты
мда... ну и жопный текст... сорри что вчера так долго меня в кино вытащили, потом пивас пошел пить. вот пжалста норм рабочий код. с одним замечанием в 7 и 12 номерах надо поставить знаки табуляции после названия.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
BinaryReader br = new BinaryReader(File.Open(".//2.txt", FileMode.Open));
            char[] bf = br.ReadChars(94); bf = new char[100];
            DataTable tb = new DataTable();
            tb.Columns.Add(new DataColumn("ID"));
            tb.Columns.Add(new DataColumn("Фильм"));
            tb.Columns.Add(new DataColumn("Режиссер"));
            tb.Columns.Add(new DataColumn("Тип"));
            tb.Columns.Add(new DataColumn("Формат"));
            tb.Columns.Add(new DataColumn("Жанр"));
            tb.Columns.Add(new DataColumn("Колличетсво"));
            bool flag = false;
            using (br)
            {
                for (int i = 0; ; )
                {
                    i = 0;
                    DataRow row = tb.NewRow();
                    for (int j = 0; ; j++)
                    {
                        try
                        {
                            bf[j] = br.ReadChar();
                            if (bf[j] == (char)13) break;
                        }
                        catch (IOException) { flag = true; break; }
                    }
                    string str = null;
                    while (!char.IsDigit(bf[i])) i++;
                    while (char.IsDigit(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[0] = str; str = null;
                    while (!char.IsLetter(bf[i])) i++;
                    while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[1] = str; str = null;
                    while (!char.IsLetter(bf[i])) i++;
                    while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[2] = str; str = null;
                    while (!char.IsLetter(bf[i])) i++;
                    while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[3] = str; str = null;
                    while (!char.IsLetter(bf[i])) i++;
                    while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[4] = str; str = null;
                    while (!char.IsLetter(bf[i])) i++;
                    while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[5] = str; str = null;
                    while (!char.IsDigit(bf[i])) i++;
                    while (char.IsDigit(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[6] = str; str = null;
                    tb.Rows.Add(row);
                    if (flag) break;
                }
            }
            dataGridView1.DataSource = tb;
            dataGridView1.Update();
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
26.05.2008, 18:15  [ТС]
Огромное спасибо ьуду разбираться

Добавлено через 1 час 8 минут
К сожалению ваш код не работает
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
BinaryReader br = new BinaryReader(File.Open("Прайс.txt", FileMode.Open));
 
                char[] bf = br.ReadChars(94); bf = new char[100];
                DataTable tb = new DataTable();
                tb.Columns.Add(new DataColumn("ID"));
                tb.Columns.Add(new DataColumn("Фильм"));
                tb.Columns.Add(new DataColumn("Режиссер"));
                tb.Columns.Add(new DataColumn("Тип"));
                tb.Columns.Add(new DataColumn("Формат"));
                tb.Columns.Add(new DataColumn("Жанр"));
                tb.Columns.Add(new DataColumn("Колличетсво"));
                bool flag = false;
                using (br)
                {
                    for (int i = 0; ; )
                    {
                        i = 0;
                        DataRow row = tb.NewRow();
                        for (int j = 0; ; j++)
                        {
                            try
                            {
                                System.Text.DecoderExceptionFallback D = new DecoderExceptionFallback();
                                
                                bf[j] = br.ReadChar();
                                if (bf[j] == (char)13) break;
                            }
                            catch (IOException)
                            {
                                flag = true; break;
                            }
                        
                        }
                        string str = null;
                        while (!char.IsDigit(bf[i])) i++;
                        while (char.IsDigit(bf[i]))
                        {
                            str += bf[i];
                            i++;
                        }
                        row[0] = str; str = null;
                        while (!char.IsLetter(bf[i])) i++;
                        while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                        {
                            str += bf[i];
                            i++;
                        }
                        row[1] = str; str = null;
                        while (!char.IsLetter(bf[i])) i++;
                        while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                        {
                            str += bf[i];
                            i++;
                        }
                        row[2] = str; str = null;
                        while (!char.IsLetter(bf[i])) i++;
                        while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                        {
                            str += bf[i];
                            i++;
                        }
                        row[3] = str; str = null;
                        while (!char.IsLetter(bf[i])) i++;
                        while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                        {
                            str += bf[i];
                            i++;
                        }
                        row[4] = str; str = null;
                        while (!char.IsLetter(bf[i])) i++;
                        while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]))
                        {
                            str += bf[i];
                            i++;
                        }
                        row[5] = str; str = null;
                        while (!char.IsDigit(bf[i])) i++;
                        while (char.IsDigit(bf[i]))
                        {
                            str += bf[i];
                            i++;
                        }
                        row[6] = str; str = null;
                        tb.Rows.Add(row);
                        if (flag) break;
                    }
                }
                dataGridView1.DataSource = tb;
                dataGridView1.Update();
            }
На строчке вылетает из программы bf[j] = br.ReadChar(); и пишет

The output char buffer is too small to contain the decoded characters, encoding 'Unicode (UTF-8)' fallback 'System.Text.DecoderReplacementFallback' .
0
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
26.05.2008, 18:21
а вы уверены, что ваш тхт в UTF-8?
попробуйте остановить, посмотреть значения эл-ов bf, потом сохранить тхт файл в UTF-8
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
26.05.2008, 18:23  [ТС]
Помогло теперь на строчке
while (!char.IsLetter(bf[i])) i++;

Пишет
Index was outside the bounds of the array.
0
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
26.05.2008, 18:26
на какой строчке? всмысле какой номер фильма в бф?
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
26.05.2008, 18:27  [ТС]
Цитата Сообщение от Levsha Посмотреть сообщение
на какой строчке? всмысле какой номер фильма в бф?
НА 4
0
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
26.05.2008, 18:35
там много таких строчек.
для начала замените кусок на
C#
1
2
3
4
5
6
7
8
row[0] = str; str = null;
                    while (!char.IsLetter(bf[i])) i++;
                    while (char.IsLetter(bf[i]) || char.IsSeparator(bf[i]) || char.IsPunctuation(bf[i]))
                    {
                        str += bf[i];
                        i++;
                    }
                    row[1] = str; str = null;
добавил char.IsPunctuation(bf[i])
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
26.05.2008, 18:42  [ТС]
Все равно пишет тоже самое на той же строчке
0
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
26.05.2008, 18:43
и, все работает. вот скриншот
+ точно рабочий тхт 2.txt
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
26.05.2008, 18:47  [ТС]
Все наконец то работает спасибо огромное!!!
0
2 / 0 / 0
Регистрация: 07.01.2008
Сообщений: 40
26.05.2008, 18:52
и на будующее. пользуйтесь Ф10 в вижуал студио. пытайтесь понять как работает код и в какой момент ошибка. удачи вам.
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
26.05.2008, 18:53  [ТС]
Еще раз спасибо
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
29.05.2008, 18:25  [ТС]
Кстати как можно проверить если выделена ячейка то узнать ее значение и работать с ним. Я делаю так но почему то пишет что фильм не выбран.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 do
            {
                if (dataGridView1.Rows[kol - 1].Cells[1].Selected)
                {
                    film = dataGridView1.Rows[kol - 1].Cells[1].Value.ToString();
                    break;
                }
                else
                {
                    x = 0;
                }
           
                kol--;
            }
                while (kol > 0);
       
            if (x == 0)
            {
                {
                    MessageBox.Show("Вы не выбрали фильм", "Ошибка", MessageBoxButtons.OK);
                }
            }
0
0 / 0 / 1
Регистрация: 06.11.2007
Сообщений: 51
31.05.2008, 18:18  [ТС]
up
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2008, 18:18
Помогаю со студенческими работами здесь

Импорт из txt в datagridview
Здравствуйте, как мне заполнить datagridview данными из txt файла txt файл имеет следующий формат: Иванов...

Из txt в DataGridView и обратно
Доброго времени суток. Подскажите пожалуйста, как считать из текстового фала таблицу, значения полей которой отделены запятыми(либо другим...

DataGridView сохранить txt
Как сохранить DataGridView в блокнот? Возможно ли такое?

Запись в dataGridView из txt файла
Сохраняю таблицу dataGridView в txt файл в таком виде Соответственно первая ячейка строки: 1 вторая ячейка строки: Первая запись ...

Сохранение DataGridView в txt файл
Здравствуйте,форумчане) Помогите пожалуйста. Я новичок в программировании,есть задание на сохранение DataGridView в файл private void...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru