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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2016, 21:20   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию наличие файлы на сайте

подскажите как проверить наличие файла на сайте, то есть
site/catalog/index3.php
Если есть index3 пишем что есть файл
mitiay вне форума Ответить с цитированием
Старый 03.09.2016, 21:31   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут файл?
Совсем не обязательно, что каждому адресу соответствует файл на сервере если это не статический сайт.

Видимо вы хотели просто выполнить HTTP GET запрос любым HTTP клиентом (Indy, Synapse, ...) и посмотреть его успешность.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.09.2016, 21:38   #3
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

ну скорей всего да,можно пример?
mitiay вне форума Ответить с цитированием
Старый 03.09.2016, 22:12   #4
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Код:
Memo1.Lines.Clear;
 try
   Memo1.Lines.Add(IdHTTP1.Get(Edit1.Text));
 except on e : EIDHttpProtocolException do
   Begin
     if e.ErrorCode = 302 then
       begin
         try
           // получаем новый адрес - адрес перенаправления
           Memo1.lines.add(idhttp1.Get(IdHTTP1.Response.Location));
         except on e:Exception do
    // предусматриваем, что исключение может возникнуть и тут
           ShowMessage('Ошибка при получении нового адреса.'+e.Message);
         end;
       end
     else
       //http 404, 501 и так далее
       memo2.lines.Add(edit1.Text+'не найдено')
   end;
 on e:Exception do
   ShowMessage('Ошибка: ' + e.Message);
 end;
Вот как ненайдено я понял как сделать,а вот как найдено подскажите)
mitiay вне форума Ответить с цитированием
Старый 03.09.2016, 22:28   #5
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

надо чтоб код ошибки не равнялся 302?
типа
Код:
 if e.ErrorCode <> 302 then
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 03.09.2016, 22:34   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Нет, 302 это редирект.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.09.2016, 22:41   #7
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Код:
begin
 try           
 IdHTTP1.Get(Edit1.Text);
 memo1.Lines.Add(edit1.Text+'найдено')
 except on e : EIDHttpProtocolException do
   Begin
     if e.ErrorCode = 302 then
       begin
         try
           // получаем новый адрес - адрес перенаправления
           Memo1.lines.add(idhttp1.Get(IdHTTP1.Response.Location));
         except on e:Exception do
    // предусматриваем, что исключение может возникнуть и тут
           ShowMessage('Ошибка при получении нового адреса.'+e.Message);
         end;
       end
     else
       //http 404, 501 и так далее
       memo2.lines.Add(edit1.Text+'не найдено')
   end;
 on e:Exception do
   ShowMessage('Ошибка: ' + e.Message);
 end;
Так и с этим разобрался,подскажите теперь как по url брать из списка и проверять по порядку?допустим список будет в memo
mitiay вне форума Ответить с цитированием
Старый 04.09.2016, 08:51   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Циклом for i:=0 to Memo1.Lines.Count - 1 do Ваши действия
FaTaL вне форума Ответить с цитированием
Старый 04.09.2016, 11:46   #9
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Код:
var
i:integer;
begin
 try
 for i:= 0 to Memo3.Lines.Count-1 do
 IdHTTP1.Get(memo3.Lines[i]);
 memo1.Lines.Add(edit1.Text+'найдено');
 except on e : EIDHttpProtocolException do
   Begin
     if e.ErrorCode = 302 then
       begin
         try
           // получаем новый адрес - адрес перенаправления
           Memo1.lines.add(idhttp1.Get(IdHTTP1.Response.Location));
         except on e:Exception do
    // предусматриваем, что исключение может возникнуть и тут
           ShowMessage('Ошибка при получении нового адреса.'+e.Message);
         end;
       end
     else
       //http 404, 501 и так далее
       memo2.lines.Add(edit1.Text+'не найдено')
   end;
 on e:Exception do
   ShowMessage('Ошибка: ' + e.Message);
 end;
Но проверяет только первый сайт остальные молчит(
mitiay вне форума Ответить с цитированием
Старый 04.09.2016, 12:04   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что написано, то и делает.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наличие товара на сайте xifor PHP 18 14.08.2016 14:28
Наличие таблицы в БД Langoria Microsoft Office Access 7 19.07.2012 21:55
Наличие цифры Shouldercannon Общие вопросы Delphi 9 26.07.2010 08:20
Проверка на наличие файла Vladya Общие вопросы Delphi 7 10.10.2009 01:26
Проверка на наличие в массиве istoe Microsoft Office Excel 8 26.08.2009 11:55