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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2013, 17:39   #1
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию Delphi. Проверить сайт на доступность

В memo список url-ов. Нужно с помошью idhttp зайти по очереди - сначало на первый урл, если соединение есть - то останавливаемся, если не соеденило - берем второй урл и так до конца.
Вот что я пробовал, однозначно нужно в цикле, за переменную беру номер строки в мемо.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to memo1.Lines.Count-1 do
try
idhttp1.Get(memo1.Lines.Strings[i]);
except
end; //по сути ничего я не сделал) не знаю как тут дальше
end.
Я добился того, что не выводяться ошибки(404, 301 и тд) и вроде оно проходит по всем ссылкам нормально, но как остановить при первом удачном конекте?
Допустим в мемо строки(намерено с ошибками)
http:/google.ru
http://goog03030393.ru
http://google.ru
http://yandex.ru

должно попытаться приконектиться по очереди ко всем и остановиться после 3-ей попытки

Последний раз редактировалось igrok111; 07.06.2013 в 17:42.
igrok111 вне форума Ответить с цитированием
Старый 07.06.2013, 21:13   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  t: boolean;
begin
  i := 0;
  t := false;
  repeat
    try
      IdHTTP1.Get(Memo1.Lines.Strings[i]);
      t := true;
    except
      inc(i);
    end;
  until (i = Memo1.Lines.Count) or t;
  if t then
    showmessage('Правильная: ' + inttostr(i + 1));
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.06.2013, 22:30   #3
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Держи:
Код:
var
i: integer;
url: string; 
begin
for i:=0 To Memo1.Lines.Count-1 Do 
begin
url:=memo1.lines.strings[i];
idhttp1.host:=url;
idhttp1.connect;
if idHTTP1.Connected=false then 
ListBox1.Items.Add(inttostr(i) + '-недоступен')
else
ListBox1.Items.Add(inttostr(i) + '-доступен');

idHttp1.Disconnect;
end;
ShowMessage('Готово');
end;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 08.06.2013, 01:27   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Код:
var
  i : Integer;
label
  ret;
begin
  i := 0;
  repeat
    try
      IdHTTP1.Get(Memo1.Lines.Strings[i]);
      goto ret;
    except
      inc(i);
    end;
  until (i = Memo1.Lines.Count);
ret:
  if i < Memo1.Lines.Count then
    showmessage('Правильная: ' + inttostr(i + 1));
end;
моя круче
eval вне форума Ответить с цитированием
Старый 08.06.2013, 01:40   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

и зачем тут метка?
достаточно break.

в остальном лучше
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступность IP адреса -=ATT=- Общие вопросы Delphi 11 12.12.2012 10:10
Доступность порта _-Re@l-_ Работа с сетью в Delphi 8 13.05.2011 00:43
Проверить существует ли сайт? (PHP) Delphinchik PHP 1 13.12.2010 19:19
Доступность кнопки. *stRong* Помощь студентам 2 04.06.2010 03:30
Как проверить загрузился ли сайт reyn90 Помощь студентам 0 01.06.2009 19:32