Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
6 / 6 / 3
Регистрация: 23.06.2012
Сообщений: 51

Передача данных из текстового файла в БД

09.06.2015, 13:15. Показов 1821. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, уважаемые форумчане.

Имеется текстовый файл, заполненный определённым текстом. Нужно сделать так, чтобы производился поиск определённой строки. Причём, после нахождения данной строки, данные, которые идут далее, копировались в базу, согласно формату, представленному на рисунке.

Заранее всем спасибо за ответы.
Миниатюры
Передача данных из текстового файла в БД  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2015, 13:15
Ответы с готовыми решениями:

Передача текстового файла по почте
Здравствуйте, реализую передачу лог-файла по почте через smtp, однако передача не происходит. В чем может быть проблема? public static...

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

Передача запускаемого текстового файла в memo (delphi)
Добрый вечер, ребят. Помогите, пожалуйста, решить проблему на delphi. У меня есть форма, на которой расположены memo, кнопка, и...

5
13 / 13 / 3
Регистрация: 05.06.2015
Сообщений: 93
09.06.2015, 20:58
Лучший ответ Сообщение было отмечено Ruswolf как решение

Решение

вот мне кажется все ищут какие-то функции, которые сразу реализуют то что вам нужно, однако
все реализуемо и простыми способами....

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim massivStrok() = io.file.readalllines(TextFile, system.text.encoding.default) 'считываем все строки файла в массив
dim StartData
dim StopData=massivStrok.lenght-1 'поскольку нам нужны строчки до конца, то позиция последней строки нам тоже пригодится
dim StrToShow as string 'ну это вообще не нужно, просто чтобы нам было можно посмотреть результат
StrToShow="наименование значение" & chr(10)
for i=0 to massivStrok.lenght-1
if instr(massivstrok(i),"decisions",1)<>0 then 'нашли строчку...сработает если этого слова нет в другом месте файла. иначе не сработает
startdata=i+1                'а вот эта первая строка в которой нужные нам данные
exit for 'завершим цикл за ненадобностью
end if
next
'первую строчку знаем, теперь отфильтруем все лишнее... давайте сначала в массивчик, а не в какую не в базу
Dim Itog(,) 'двумерный массив в который будем записывать результат
 for i=startdata to stopdata
itog(0,i-startdata)=mid(massivstrok(i),1+instr(massivstrok(i),"(",1),instr(massivstrok(i),")",1)-instr(massivstrok(i),"(",1)-1)
itog(1,i-startdata)=right(massivstrok(i),len(massivstrok(i))-instr(massivstrok(i),")",1)-2) '-2 тк там два символа после скобки-то...")" а потом еще ": "
strtoshow=strtoshow & itog(0,i-startdata) & " " itog(1,i-startdata) & chr(10)
next
ну вот как-то так...массив
VB.NET
1
itog(0 to 1,0 to stopdata-startdata)
содержит нужные вам данные...а дальше что хотите с ними, хоть в dataset а потом в вашу бд...хотя мне кажется тут не в бд дело... можно в datagridview вывести и поглядеть... или в таблицу любую...
ну а мы поглядим по простому
VB.NET
1
msgbox(strtoshow)
прошу прощения если гдето ошибся ибо нет возможности проверять правильность кода, я таким образом тоже учусь
но логика должна быть верная
2
6 / 6 / 3
Регистрация: 23.06.2012
Сообщений: 51
11.06.2015, 12:31  [ТС]
Цитата Сообщение от LEonardo_ Посмотреть сообщение
прошу прощения если гдето ошибся
Позволил себе немного поправить код

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        Dim massivStrok() = IO.File.ReadAllLines(Txtfl, System.Text.Encoding.Default) 'считываем все строки файла в массив
        Dim StartData
        Dim StopData = massivStrok.Length - 1 'поскольку нам нужны строчки до конца, то позиция последней строки нам тоже пригодится
        Dim StrToShow As String 'ну это вообще не нужно, просто чтобы нам было можно посмотреть результат
        StrToShow = "наименование значение" & Chr(10)
        For i = 0 To StopData
            If InStr(massivStrok(i), "decisions", CompareMethod.Text) <> 0 Then 'нашли строчку...сработает если этого слова нет в другом месте файла. иначе не сработает
                StartData = i + 1                'а вот эта первая строка в которой нужные нам данные
                Exit For 'завершим цикл за ненадобностью
            End If
        Next
        'первую строчку знаем, теперь отфильтруем все лишнее... давайте сначала в массивчик, а не в какую не в базу
        Dim itog(0 To 1, 0 To StopData - StartData) 'двумерный массив в который будем записывать результат
        For i = StartData To StopData
            itog(0, i - StartData) = Mid(massivStrok(i), 1 + InStr(massivStrok(i), "(", CompareMethod.Text), InStr(massivStrok(i), ")", CompareMethod.Text) - InStr(massivStrok(i), "(", CompareMethod.Text) - 1)
            itog(1, i - StartData) = Microsoft.VisualBasic.Right(massivStrok(i), Len(massivStrok(i)) - InStr(massivStrok(i), ")", CompareMethod.Text) - 2) '-2 тк там два символа после скобки-то...")" а потом еще ": "
            StrToShow = StrToShow & itog(0, i - StartData) & " " & itog(1, i - StartData) & Chr(10)
        Next
        MsgBox(StrToShow)
Txtfl - переменная, содержащая путь к файлу.

Теперь немного другая проблема. Код рабочий, но, судя по всему, что-то не так с кодировкой, так как в результате я получил в MsgBox'е сообщение, представленное на рисунке.

Мне кажется, что проблема в этой строке:
VB.NET
1
 Dim massivStrok() = IO.File.ReadAllLines(Txtfl, System.Text.Encoding.Default) 'считываем все строки файла в массив
Сейчас проверю и отпишусь. Если кто-то сталкивался с такой проблемой, а проблема не в указанной мной строке, отпишитесь, пожалуйста, по этому поводу.

P.S.: Ещё раз огромное спасибо тебе за этот код.
Изображения
 
0
6 / 6 / 3
Регистрация: 23.06.2012
Сообщений: 51
11.06.2015, 12:39  [ТС]
Да. Я оказался прав. Файл нормально выводится с кодировкой UTF8
VB.NET
1
Dim massivStrok() = IO.File.ReadAllLines(Txtfl, System.Text.Encoding.UTF8) 'считываем все строки файла в массив
Изображения
 
0
6 / 6 / 3
Регистрация: 23.06.2012
Сообщений: 51
12.06.2015, 18:53  [ТС]
Возникла небольшая проблема. В грид данные я вывел, но я хотел бы их сохранить в таблицу БД. Как я это могу сделать?

Общая картина следующая: имеются DataTable; двумерный массив с данными, которыми заполняется DataTable; DataGridView, в который выводятся данные из DataTable; База, в которую нужно добавить данные из DataTable или двумерного массива.

Пробовал добавлять их через "INSERT INTO", но или я что-то не так делал, или этот вариант попросту не подходит.
0
13 / 13 / 3
Регистрация: 05.06.2015
Сообщений: 93
13.06.2015, 23:36
ой как давно я не заглядывал оказывается

я в принципе подобную задачу сейчас решаю, ради этого изучаю vb.net(только текстовый файл у меня 150 000 строк/около 200 полей) и проблемы вообщем-то все мне эти встречались

Цитата Сообщение от Ruswolf Посмотреть сообщение
VB.NET
1
System.Text.Encoding.Default
по умолчанию это windows кодировка(1251)
у вас у текстового файла другая, все правильно, решение нашли
Цитата Сообщение от Ruswolf Посмотреть сообщение
Возникла небольшая проблема. В грид данные я вывел, но я хотел бы их сохранить в таблицу БД. Как я это могу сделать?
Если всетаки нужно в БД это все дело записать, то вовсе не обязательно в datagridview все это выводить, достаточно создать таблицу
дальше как я понимаю расскажу. кода всеравно под рукой нет моего...
Изначально у вас есть текстовый файл и таблица базы данных(пустая? а может уже с данными?) которую нужно этим делом заполнить...

1. создаем dataset с таблицей datatable, создаем подключение(строку подключения к бд) к вашей таблице и адаптер с помощью которого обеспечим взаимодействие.
2. заполняем таблицу dataset из таблицы бд с помощью адаптера
3. изменяем таблицу так как нам нужно. (используя текстовый файл). а можно в datagridview вывести и ручками поправить... но не обязательно...
4. обновляем таблицу БД из нашего dataset.

я пока не разобрался мне наверно это все было бы не очень понятно...
да и я в учителя по подключениям к бд не особо наверно гожусь, пару дней назад разобрался всего...
но тем не менее...если нужно, я смогу часть своего кода выложить, только позже...
однако, если обьем данных вот примерно такой(ну то есть 10 строк по 2 поля), то может все таки не надо себе сложностей-то придумывать?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2015, 23:36
Помогаю со студенческими работами здесь

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt; using namespace std; struct...

Сортировка слов текстового файла путём слияния данных из файла и заданного внутреннего массива
Здравствуйте. Имеется задание, которое я ни в коем случае не прошу за меня сделать. Мне непонятно пару моментов, которые бы мне...

Создание текстового файла и чтение данных из файла
Здравствуйте. Дана задача : Создать файл, содержащий сведения о сдаче студентами первого курса сессии. Структура записи – Индекс группы,...

Чтение текстового файла. Парсинг его данных. Создание исключений для данных. Запись свойств объектов в файл
Проблема такая. Есть файл data.txt. В нем например какие-то данные. Landon Donovan, 150, A Hulk Hogan , 100, M Duke Nukem, 50,...

Считывание данных из текстового файла c++
Здравствуйте,у меня по мере изучения c++ появился вопрос. Каким образом можно устанавливать курсор на строку? Если конкретно,то есть...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru