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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2012, 04:22   #1
sedoq
Пользователь
 
Аватар для sedoq
 
Регистрация: 30.01.2012
Сообщений: 11
По умолчанию Программа для выдёргивания ссылок с сайтов

Программа для выдёргивания ссылок с сайтов
но у меня получилось что выдернуть ссылки могу только с одного сайта который пропишу в коде, но у меня не получается сделать ввод сайта в запущенной программе, возможно ли сделать ввод в TEdit?

Вот код:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    IdAntiFreeze1: TIdAntiFreeze;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    procedure IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCountMax: Integer);
    procedure IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  count:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
label met;
var
 html,output:WideString;
 i:integer;
 tagHtml:TStringList;
begin
   try
    output:='';
    tagHtml:=TStringList.Create;
    tagHtml.Clear;
    tagHtml.Add('class');
    tagHtml.Add('id="');
    tagHtml.Add('target');
    tagHtml.Add('title');
    IdHTTP1.Request.AcceptCharSet:='utf-8';
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>    html:=IdHTTP1.Get('http://devdelphi.ru/');    <<<<<<<<<<<<<<<<<<<<<<<<<<<
    met:
     begin
      if pos('<a href=',html)<>0 then
       begin
        inc(count);
        ProgressBar1.Max:=count;
        output:='';
        Delete(html,1,pos('<a href=',html)+length('<a href=')-1);
        output:=copy(html,1,pos('>',html)-1);
        if pos('http',output)<>0 then
         begin
          for i:=0 to tagHtml.Count-1 do
           begin
            if pos(tagHtml.Strings[i],output)<>0 then
             Delete(output,pos(tagHtml.Strings[i],output),length(output));
           end;
          ListBox1.Items.Add(output);
          ProgressBar1.Position:=ProgressBar1.Position+1;
         end;
        goto met
       end
      else
       exit;
      end;
     tagHtml.Free;
   except
    on e:Exception do
     tagHtml.Free;
   end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   count:=0;
end;

procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
   ProgressBar1.Position:=ProgressBar1.Position+AWorkCount;
end;

procedure TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
   ProgressBar1.Max:=AWorkCountMax;
end;

procedure TForm1.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
   ProgressBar1.Position:=0;
end;

end.

Последний раз редактировалось sedoq; 09.07.2012 в 04:38.
sedoq вне форума Ответить с цитированием
Старый 09.07.2012, 08:40   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Можно, просто пиши вместо названия сайта Edit1.Text.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 09.07.2012, 15:52   #3
sedoq
Пользователь
 
Аватар для sedoq
 
Регистрация: 30.01.2012
Сообщений: 11
По умолчанию

Не получается пишет ошибку [Pascal Error] Unit1.pas(1): Unable to invoke Code Completion due to errors in source code
sedoq вне форума Ответить с цитированием
Старый 09.07.2012, 15:59   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Form1.Edit1.Text.

Код приводи своих изменений. Телепатов тут нет.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 09.07.2012, 16:01   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну так надо сначала на форму кинуть TEdit,
дать ему имя (например, edit1)

потом можно в коде написать так, например:
Код:
  html:=IdHTTP1.Get(Edit1.Text);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.07.2012, 16:34   #6
sedoq
Пользователь
 
Аватар для sedoq
 
Регистрация: 30.01.2012
Сообщений: 11
По умолчанию

Спасибо большое всё получилось
sedoq вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для создание сайтов saitmax Общие вопросы .NET 1 01.02.2011 01:26
Программа для резервных копий сайтов и их БД siteograf Софт 1 23.09.2010 07:57
Программа для сканирования ссылок на сайте. antoha.by Помощь студентам 6 27.07.2008 17:58
Программа для блокирования сайтов и баннерных сетей KORN Софт 0 03.01.2008 12:51
программа для скачивания сайтов Noor Свободное общение 1 26.04.2007 16:59