Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.12.2012, 11:55
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию Memo разбить текст и добавить в БД

Друзья, всем привет. У меня такой вопрос. Есть некая html страница, текст находящийся в этой странице должна программно заносится в БД, каким образом я поступаю.
Код:
memo1.lines.add(webbrowser1.oleobject.document.documentelement.innertext);
На этом этапе всё отлично, я получаю текст без тегов, теперь мне надо этот текст разбить на части, и добавить в БД.
Структура БД:
Страна: Номер патента: Статус: Заявка: Авторы: Патентообладатель: Адрес:
См. прикпреплённый файл. Таких документов около 500 шт. и хотелось бы что бы всё это дело происходило как то автоматизированно, помогите пожалуйста, советом, как лучше это сделать, идеей или кодом=) Заранее благодарен.
Изображения
Тип файла: png Без имени-2.png (123.3 Кбайт, 6 просмотров)
Ответить с цитированием
  #2  
Старый 04.12.2012, 12:00
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Я бы парсил страничку на предмет нахождения нужных тэгов.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 04.12.2012, 12:18
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Идея хорошая, но проблема в том что, один и тот же тег, встречается много раз. Как из одинаковых тегов убрать ненужные, и оставить только нужный тег?
Ответить с цитированием
  #4  
Старый 04.12.2012, 12:43
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

моё имхо такое делать не дельфями,
а так смотришь какие элементы нужны, напрмер ctrl+shift+i в браузере, а дальше в цикле можно найти их по классу например
__________________
>woweook<
Ответить с цитированием
  #5  
Старый 04.12.2012, 13:05
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Pyro, я понял ход твоих мыслей вот смотри.
Код HTML:
<td rowspan="2" style="width:67mm; text-align:center; font-weight:bold; line-height:4mm;">РОССИЙСКАЯ ФЕДЕРАЦИЯ<br>
Как отсюда вытащить "РОССИЙСКАЯ ФЕДЕРАЦИЯ"?
Ответить с цитированием
  #6  
Старый 04.12.2012, 14:08
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

Цитата:
Сообщение от borockov
Как отсюда вытащить "РОССИЙСКАЯ ФЕДЕРАЦИЯ"?
это постоянная тема на форуме, проще всего написать функцию, которая при помощи pos, delete оставит только текст от ... и до ...
__________________
>woweook<
Ответить с цитированием
Этот пользователь сказал Спасибо Pyro за это полезное сообщение:
borockov (04.12.2012)
  #7  
Старый 04.12.2012, 14:09
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

А затем загнать к примеру этот текст в edit?
Ответить с цитированием
  #8  
Старый 04.12.2012, 14:10
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию

Так начну копать тогда в сторону этих функций! Спасибо!
Ответить с цитированием
  #9  
Старый 04.12.2012, 19:09
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Код:
procedure TForm2.Button1Click(Sender: TObject);
var
s,g,find:string;
i:integer;
begin
s:='<td rowspan="2" style="width:67mm; text-align:center; font-weight:bold; line-height:4mm;">Российская федерация<br>';
g:=copy(s,pos('<td rowspan="2" style="width:67mm; text-align:center; font-weight:bold; line-height:4mm;">',s)+length('<td rowspan="2" style="width:67mm; text-align:center; font-weight:bold; line-height:4mm;">'),pos('<br>',s)-pos('<td rowspan="2" style="width:67mm; text-align:center; font-weight:bold; line-height:4mm;">',s)-length('<td rowspan="2" style="width:67mm; text-align:center; font-weight:bold; line-height:4mm;">'));
showmessage(g);
end;
end
Таким образом я получаю нужный мне результат. Но вот не могу понять, т.к у меня очень много документов, то вместо "Российская федерация" у меня может стоять любая страна,страна, как сделать так что бы вывести именно текст находящийся между тегами?
Ответить с цитированием
  #10  
Старый 04.12.2012, 19:59
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Чувак, ты суров.

Используй регулярные выражения, ссылка на книгу в моей подписи.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #11  
Старый 04.12.2012, 22:12
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Oк спасибо, попробую в эту сторону копать=))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025