Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 928

/ вопрос открыт /

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

Собственно у меня есть список сайтов, есть процедура, которая делает гет запрос парсит, то что мне нужно, записывает в переменную. Собственно как это сделать с помощью потоков? ниже приведен полный листинг примера, то что прога делает теперь, повторяюсь, это только пример.

Зарание спасибо!

Приложение:
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  8. IdHTTP, StdCtrls;
  9.  
  10. type
  11. TForm1 = class(TForm)
  12. Button1: TButton;
  13. IdHTTP1: TIdHTTP;
  14. Memo1: TMemo;
  15. procedure Button1Click(Sender: TObject);
  16. procedure pars(s1,s2,s3,s4,s5:string);
  17. private
  18. { Private declarations }
  19. public
  20. { Public declarations }
  21. end;
  22. type
  23. sp1=record
  24. title:string[150];
  25. purl:string[200];
  26. end;
  27.  
  28. var
  29. Form1: TForm1;
  30. i,n,t:integer;
  31. title,rss,html,title1,title2:WideString;
  32. mas,mas1,mas2,mas3:array[1..50]of sp1;
  33. implementation
  34.  
  35. {$R *.dfm}
  36. procedure TForm1.pars(s1,s2,s3,s4,s5:string);
  37. var
  38. i,n:integer;
  39. begin
  40. rss:=IdHTTP1.Get(s1);
  41. n:=1;
  42. i:=1;
  43. title:='';
  44. while (i<=length(rss)) do
  45. begin
  46. if pos(s2,rss)<>0 then
  47. begin
  48. Delete(rss,1,pos(s2,rss)+length(s2)-1);
  49. title:=copy(rss,1,pos(s3,rss)-1);
  50. memo1.lines.add(title);
  51. mas[n].title:=title;
  52.  
  53. Delete(rss,1,pos(s4,rss)+length(s4)-1);
  54. title:=copy(rss,1,pos(s5,rss)-1);
  55. memo1.lines.add(title);
  56. mas[n].purl:=title;
  57.  
  58. n:=n+1;
  59. Application.ProcessMessages();
  60. end else break;
  61.  
  62. end;
  63.  
  64. inc(i);
  65. Application.ProcessMessages();
  66.  
  67. end;
  68.  
  69. procedure TForm1.Button1Click(Sender: TObject);
  70. begin
  71.  
  72. mas1:=mas;
  73.  
  74. pars('http://bigcinema.tv/','</span></li></ul></div><div class="topic_info"><h2 class="title">','</h2>','<!-- / tag groups--><a href="','" class="watch" title="');
  75. mas2:=mas;
  76.  
  77. end;
  78.  
  79. end.
  80.  


Шарайчук Сергей Олександрович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Шарайчук Сергей Олександрович (статус: 2-ой класс)
Вопрос отправлен: 4 февраля 2012, 18:03
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 27 марта 2023, 03:00
Выполнено за 0.02 сек.
Рейтинг@Mail.ru