|
Вопрос # 5 650/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты! Приветсвую вас.
В общем проблема не проблема, нуждаюсь в доработке функции и переводе онной на delphi WinAPI.
Суть в следущем:
Нужен HTML-парсер, который бы брал текст между двумя тегами <pre> Нужный текст</pre> и вставлял его в lable1.caption.
В принцепе решил вопрос:
procedure TForm1.Button1Click(Sender: TObject);
begin
NMHTTP1.Get('http://localhost/reklama.php');
lable1.caption := NMHTTP1.Body
end;
Но проблема в том, что он весь боди выдирает и всталвет, и нужно сделать это всё на WinAPI, помогите пожалуйста.
 |
Вопрос задал: winner13 (статус: 1-ый класс)
Вопрос отправлен: 25 сентября 2011, 14:46
Состояние вопроса: решён, ответов: 1.
|
Ответ #1. Отвечает эксперт: Шарайчук Сергей Олександрович
Здравствуйте, winner13!
Ну так вы весь боди и парсите, попробуйте так...
s1 адрес
s2 тег перед текстом
s3 текст после текста
Приложение: Переключить в обычный режим- procedure TForm1.pars(s1,s2,s3,:string);
- var
- i,n,t:integer;
- begin
- rss:=IdHTTP1.Get(s1);
-
- i:=1;
- title:='';
- while (i<=length(rss)) do
- begin
- if pos(s2,rss)<>0 then
- begin
- Delete(rss,1,pos(s2,rss)+length(s2)-1);
- title:=copy(rss,1,pos(s3,rss)-1);
- Application.ProcessMessages();
- rss:='';
-
- end else break;
-
- end;
- inc(i);
-
- Application.ProcessMessages();
-
- end;
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 25 сентября 2011, 15:20; участников в обсуждении: 1.
|
winner13 (статус: 1-ый класс), 25 сентября 2011, 15:20 [#1]:
Чесно я не понял зачем нужно Application.ProcessMessages();
rss:='';
...
inc(i);
Application.ProcessMessages();
И я немного не понял ответа, код не совсем то что нужно, и не на ВинАПИ, можно подробней если есть возможность.
Не решимых проблем нет, есть неприятные для нас решения.
|
28 сентября 2011, 00:57: Статус вопроса изменён на решённый (изменил автор вопроса — winner13)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|