Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2012, 17:49   #1
taurii
Пользователь
 
Регистрация: 05.07.2011
Сообщений: 24
По умолчанию Потоки? Как?

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

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

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

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure pars(s1,s2,s3,s4,s5:string);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
sp1=record
title:string[150];
purl:string[200];
end;

var
  Form1: TForm1;
i,n,t:integer;
title,rss,html,title1,title2:WideString;
mas,mas1,mas2,mas3:array[1..50]of sp1;
implementation

{$R *.dfm}
procedure TForm1.pars(s1,s2,s3,s4,s5:string);
var
i,n:integer;
begin
rss:=IdHTTP1.Get(s1);
   n:=1;
   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);
       memo1.lines.add(title);
       mas[n].title:=title;

       Delete(rss,1,pos(s4,rss)+length(s4)-1);
       title:=copy(rss,1,pos(s5,rss)-1);
       memo1.lines.add(title);
       mas[n].purl:=title;

       n:=n+1;
       Application.ProcessMessages();
      end else break;

      end;

     inc(i);
Application.ProcessMessages();

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
pars('http://filmix.net/',''' title=''','''  /></a>','<a href="','">смотреть онлайн »');
mas1:=mas;

pars('http://bigcinema.tv/','</span></li></ul></div><div class="topic_info"><h2 class="title">','</h2>','<!-- / tag groups--><a href="','" class="watch" title="');
mas2:=mas;

end;

end.
taurii вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как распараллелить потоки Lindemann66 Qt и кроссплатформенное программирование С/С++ 1 08.09.2011 13:58
Потоки. FieStik Общие вопросы C/C++ 4 23.05.2011 14:12
потоки Cpluser Общие вопросы .NET 5 15.02.2011 22:17
Как красиво сделать шифрование через потоки? TwiX Общие вопросы C/C++ 0 16.12.2010 14:37
Потоки - Как сделать чтоб не предок ждал пока наследники подсчитают, а один наследник ждал другого? SkrudjMakdak Общие вопросы Delphi 7 22.09.2010 09:03