Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50

Как занести данные из текстового файла в DataGridView?

26.05.2017, 00:32. Показов 7178. Ответов 62
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер! У меня возникла проблема с массивом. Делаю базу данных из анкет, затем по критериям нужно будет найти анкеты. Нужно достать из txt файла данные и засунуть в DataGrid. Как это сделать? Вот как выглядит окно поиска
Миниатюры
Как занести данные из текстового файла в DataGridView?  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.05.2017, 00:32
Ответы с готовыми решениями:

Как занести данные в БД из DataGridView?
И вот еще вопрос, как сне сделать так, чтобы данные заносились в бд? con2.Open(); SqlDataAdapter sda2 = new...

Навигация по datagridview (данные с текстового файла)
Всем доброго дня! Еще созрел один вопросик. Активно начинаю изучать работу datagridview с текстовым файлом. И вот в чем вопрос. Есть...

Как занести данные с DataGridView в Access
Всем доброго дня! Вот как-то так у меня заполняется DataGridView данными void Get_Results () // метод для записи результатов в таблицу ...

62
 Аватар для Gilford
92 / 74 / 24
Регистрация: 31.03.2013
Сообщений: 257
26.05.2017, 07:22
Значит по сути бд нет, а есть текстовый файл?
Ищешь в файле нужные данные и заносишь:
VB.NET Скопировано
1
2
DataGridView1.Item(0, 0).Value = FIO
DataGridView1.Item(0, 1).Value = BirthDay
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
26.05.2017, 09:44  [ТС]
Да, есть файл
А какой код будет у form полностью?
0
 Аватар для Gilford
92 / 74 / 24
Регистрация: 31.03.2013
Сообщений: 257
26.05.2017, 10:48
Цитата Сообщение от Владлена Посмотреть сообщение
А какой код будет у form полностью?
Для начала надо определить как разделяются данные в текством файле. Предположим, что через запятую ","
Code Скопировано
1
Иванов_В.В.,01,01,1999,Москва и т.д.
При загрузке формы:
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim ReadLine As IO.StreamReader
Dim line As String
Dim i as integer
ReadLine = FileIO.FileSystem.OpenTextFileReader(MyTxtFile) 'Открываем для чтения
 
Do Until ReadLine.EndOfStream 'Если конец файла - выходим из цикла
line = ReadLine.ReadLine 'считываем строку
DataGridView1.Item(i, 0).Value = split(line, ",").GetValue(0)
DataGridView1.Item(i, 1).Value = split(line, ",").GetValue(1)
DataGridView1.Item(i, 2).Value = split(line, ",").GetValue(2)
'И т.д.
i+=1 'На следующую строку
Loop
ReadLine.Close() 'Закрываем файл для чтения
Думаю понятен смысл.
1
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,509
Записей в блоге: 2
26.05.2017, 14:13
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Можно и так
VB.NET Скопировано
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
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim fName As String = IO.Path.Combine(Application.StartupPath, "tst.txt")
    Dim records() As String = IO.File.ReadAllLines(fName, System.Text.Encoding.Default)
    Dim bb As New List(Of Biography)
    For Each rr As String In records
        bb.Add(New Biography(rr.Split(","c)))
    Next
    DataGridView1.DataSource = bb
End Sub
'…
Public Class Biography
    Public Sub New(ByVal pp() As String)
        _FIO = pp(0)
        _dd = CInt(pp(1))
        _mm = CInt(pp(2))
        _yyyy = CInt(pp(3))
        _town = pp(4)
        _telf = CLng(pp(5))
    End Sub
    Public Property FIO As String
    Public Property dd As Integer
    Public Property mm As Integer
    Public Property yyyy As Integer
    Public Property town As String
    Public Property telf As Long
End Class
5
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 21:54  [ТС]
Хорошо, спасибо) А как описать кнопку, которая будет запускать поиск по критериям?
0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,509
Записей в блоге: 2
29.05.2017, 22:55
Можно так
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    Dim fName As String = IO.Path.Combine(Application.StartupPath, "tst.txt")
    Dim records() As String = IO.File.ReadAllLines(fName, System.Text.Encoding.Default)
    Dim bb As New List(Of Biography)
    For Each rr As String In records
        bb.Add(New Biography(rr.Split(","c)))
    Next
    'требуемое условие (написал для примера)
    'Dim sel = From b As Biography In bb Where b.yyyy > 1998 Select b.FIO, b.town, b.telf, b.yyyy
    'Dim sel = From b As Biography In bb Where b.yyyy > 1998 And b.yyyy < 2010 Select b.FIO, b.town, b.telf, b.yyyy
    Dim sel = From b As Biography In bb Where b.town = "Москва2"
    DataGridView1.DataSource = Nothing
    If sel.Count > 0 Then
        DataGridView1.DataSource = sel.ToArray
    Else
        MsgBox("Нет данных!")
    End If
End Sub
1
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:13  [ТС]
с кодом который вы прислали для form очень много ошибок вылезло, взяла 1-ый

VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim ReadLine As IO.StreamReader
Dim line As String
Dim i as integer
ReadLine = FileIO.FileSystem.OpenTextFileReader(MyTxtFile) 'Открываем для чтения
 
Do Until ReadLine.EndOfStream 'Если конец файла - выходим из цикла
line = ReadLine.ReadLine 'считываем строку
DataGridView1.Item(i, 0).Value = split(line, ",").GetValue(0)
DataGridView1.Item(i, 1).Value = split(line, ",").GetValue(1)
DataGridView1.Item(i, 2).Value = split(line, ",").GetValue(2)
'И т.д.
i+=1 'На следующую строку
Loop
ReadLine.Close() 'Закрываем файл для чтения
Как под него кнопку сделать?
0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,509
Записей в блоге: 2
29.05.2017, 23:26
Цитата Сообщение от Владлена Посмотреть сообщение
очень много ошибок вылезло
М.б. стоит разобраться, что это за ошибки? Код рабочий и проблемы на вашей стороне.
1
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:36  [ТС]
Сейчас пришлю фото.
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:44  [ТС]
Вложение 838623 вот
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
29.05.2017, 23:50  [ТС]
Вот лучше качество.
[ATTACH][ATTACH][ATTACH]
Как занести данные из текстового файла в DataGridView?
[/ATTACH][/ATTACH][/ATTACH]
Миниатюры
Как занести данные из текстового файла в DataGridView?   Как занести данные из текстового файла в DataGridView?   Как занести данные из текстового файла в DataGridView?  

0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,509
Записей в блоге: 2
29.05.2017, 23:58
Владлена,
Время позднее поэтому я вам скину рабочий проект. Попробуйте в нем разобраться и приспособить к своим требованиям.
Вложения
Тип файла: rar tstPrj.rar (11.4 Кб, 57 просмотров)
0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,509
Записей в блоге: 2
30.05.2017, 00:40
Если в VS2008 не воспринимает, попробуйте переписать класс
Кликните здесь для просмотра всего текста
VB.NET Скопировано
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
Public Class Biography
    Private _FIO, _town As String
    Private _dd, _mm, _yyyy As Integer
    Private _telf As Long
    Public Sub New(ByVal pp() As String)
        _FIO = pp(0)
        _dd = CInt(pp(1))
        _mm = CInt(pp(2))
        _yyyy = CInt(pp(3))
        _town = pp(4)
        _telf = CLng(pp(5))
    End Sub
    Public Property FIO As String
        Get
            Return _FIO
        End Get
        Set(value As String)
            _FIO = value
        End Set
    End Property
    Public Property dd As Integer
        Get
            Return _dd
        End Get
        Set(value As Integer)
            _dd = value
        End Set
    End Property
    Public Property mm As Integer
        Get
            Return _mm
        End Get
        Set(value As Integer)
            _mm = value
        End Set
    End Property
    Public Property yyyy As Integer
        Get
            Return _yyyy
        End Get
        Set(value As Integer)
            _yyyy = value
        End Set
    End Property
    Public Property town As String
        Get
            Return _town
        End Get
        Set(value As String)
            _town = value
        End Set
    End Property
    Public Property telf As Long
        Get
            Return _telf
        End Get
        Set(value As Long)
            _telf = value
        End Set
    End Property
End Class
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:27  [ТС]
Вылезла ошибка: "withevents переменная FIO неявно определяет "_FIO", которое вступает в противоречие с членом, имеющим такое же имя в form3" подскажите что нибудь?
0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,509
Записей в блоге: 2
30.05.2017, 20:32
Владлена, выложите ваш проект (или код, относящийся к данной теме).
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:35  [ТС]
VB.NET Скопировано
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
Public Class Form3 
 Dim keyascii As Integer 
 Dim _names, _town As String 
 Dim _dd, _mm, _yyyy As Integer 
 Dim _telf As Long 
 
 
 
 Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
 If IsNumeric(TextBox1.Text) Then 
 MsgBox("Ввод только букв!") 
 End If 
 'InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture( _' 
 'New Globalization.CultureInfo("ru-RU"))' 
 
 If InputLanguage.CurrentInputLanguage.LayoutName = "Русская" Then 
 
 Else 
 InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture( _ 
 New Globalization.CultureInfo("ru-RU")) 
 'MsgBox("Ошибка! Ввод только русскими буквами!") 
 TextBox1.Text = "" 
 End If 
 
 If Chr(keyascii) = "en-US" Then 
 keyascii = Asc("ru-RU") 
 
 End If 
 
 'MsgBox(InputLanguage.CurrentInputLanguage.LayoutName) 
 End Sub 
 
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
 Beep() 
 Dim message As String 
 Dim buttonsandicons As Integer 
 Dim title As String 
 Dim response As String 
 message = "Хотите выйти?" 
 title = "Выход" 
 buttonsandicons = vbYesNo + vbQuestion 
 response = MsgBox(message, buttonsandicons, title) 
 If response = vbYes Then 
 End 
 End If 
 End Sub 
 
 
 
 Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
 Private class Biography() 
 
 Private Sub New(ByVal pp() As String) 
 _names = pp(0) 
 _dd = CInt(pp(1)) 
 _mm = CInt(pp(2)) 
 _yyyy = CInt(pp(3)) 
 _town = pp(4) 
 _telf = CLng(pp(5)) 
 End Sub 
 Public Property names() As String 
 Get 
 Return _names 
 End Get 
 Set(ByVal value As String) 
 _names = value 
 End Set 
 End Property 
 Public Property dd() As Integer 
 Get 
 Return _dd 
 End Get 
 Set(ByVal value As Integer) 
 _dd = value 
 End Set 
 End Property 
 Public Property mm() As Integer 
 Get 
 Return _mm 
 End Get 
 Set(ByVal value As Integer) 
 _mm = value 
 End Set 
 End Property 
 Public Property yyyy() As Integer 
 Get 
 Return _yyyy 
 End Get 
 Set(ByVal value As Integer) 
 _yyyy = value 
 End Set 
 End Property 
 Public Property town() As String 
 Get 
 Return _town 
 End Get 
 Set(ByVal value As String) 
 _town = value 
 End Set 
 End Property 
 Public Property telf() As Long 
 Get 
 Return _telf 
 End Get 
 Set(ByVal value As Long) 
 _telf = value 
 End Set 
 End Property 
 
 
 
 
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
 TextBox1.Text = "" 
 MaskedTextBox1.Text = "" 
 ComboBox1.Text = "" 
 End Sub 
 
 
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
 Dim fName As String = IO.Path.Combine(Application.StartupPath, "tst.txt") 
 Dim records() As String = IO.File.ReadAllLines(fName, System.Text.Encoding.Default) 
 Dim bb As New List(Of Biography) 
 For Each rr As String In records 
 bb.Add(New Biography(rr.Split(","c))) 
 Next 
 'требуемое условие (написал для примера) 
 'Dim sel = From b As Biography In bb Where b.yyyy > 1998 Select b.FIO, b.town, b.telf, b.yyyy 
 'Dim sel = From b As Biography In bb Where b.yyyy > 1998 And b.yyyy < 2010 Select b.FIO, b.town, b.telf, b.yyyy 
 Dim sel = From b As Biography In bb Where b.town = "Москва2" 
 DataGridView1.DataSource = Nothing 
 If sel.Count > 0 Then 
 DataGridView1.DataSource = sel.ToArray 
 Else 
 MsgBox("Нет данных!") 
 End If 
 End Sub 
End Class
Вот весь код вместе с вашим
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:37  [ТС]
Вот что вылезает
Как занести данные из текстового файла в DataGridView?
0
0 / 0 / 0
Регистрация: 26.05.2017
Сообщений: 50
30.05.2017, 20:44  [ТС]
С ФИО нашла в чем подвох, а вот public class и sub нет
Ошибка номер 3 на скрине
0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,509
Записей в блоге: 2
30.05.2017, 21:04
Ну так нельзя.
Вы в процедуру Form3_Load (Class Form3) попытались впихнуть код, относящийся к описанию другого класса (Biography). Посмотрите проект, что я выложил, как там описываются классы. Кроме того поля в классе Biography это пример, я ведь не знаю какие поля в ваших данных.
Потом в Button2_Click вы целиком использовали мой код, но я, то предложил все это как пример. У вас же наверняка и файл с другим именем, возможно и разделители в файле другие.
Кроме того в проекте еще две формы и с ними вероятно тоже проблемы.
Для начала определите класс Biography как положено (за границами класса Form3). Обратите внимание, процедура Form3_Load обязана иметь закрывающий оператор End Sub.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2017, 21:04
Помогаю со студенческими работами здесь

Как занести данные в таблицу dataGridView
Пользователь вводит имя, год рождение и баллы. Они должны попасть в 3 столбца. Помогите плиз!!!!

Как занести данные через TextBox в DataGridView
У меня есть таблица: Номер, фамилия, имя, телефон.. а как сделать чтобы пользователь вводил в TExtBox данные и нажимал кнопку добавить и...

Вывести в datagridview данные из текстового файла, находящегося в ресурсах проекта
Всем доброго дня. Есть текстовый файл в ресурсах проекта вида: Россия Латвия Литва Эстония Германия Польша Как считать с...

Как занести содержание текстового файла в одну строку?
Нужно занести содержание текстового файла в одну строку. Делаю так: CFile m_pFile; char txtBuffer; m_pFile.Open ( *m_pPath,...

Как прочитать данные из файла и занести их в класс
Здравствуйте. Мне необходима ваша помощь в следующем вопросе. У меня имеется файл текстовый файл,в котором хранятся данные. Примерное...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер