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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2009, 19:58   #1
}{oт@бь)ч
Форумчанин
 
Аватар для }{oт@бь)ч
 
Регистрация: 16.10.2008
Сообщений: 104
Сообщение Проверка сайта

Здраствуйте вообшем возник вот такой вопрос...
Допустим есть сайт http://syte.ru
Вот мне нужно создать програмку которая бы переберела корневую папку сайта,тоесть лежит файл например 6565.zip вот у меня в текстовом документе записан среди многих файл 6565.zip
И мне нужно если такой файл есть в корневой папке сайта мне нужно чтобы он скачался в папку с моей программой!
Таке возможно?
}{oт@бь)ч вне форума Ответить с цитированием
Старый 23.08.2009, 20:45   #2
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Можно! Можно если ты ищешь файлы с определённым именем, а не все хочешь перебрать, которые там находятся. Причём помни, что надо регистр учитывать!

Берёшь компонент tIdHttp (со вкладки indy clients) и пишешь...
Ну вот в общем-то я тут кое что навоял увлёкшись...
Код:
function getSomeFile(const address: string; stream: tStream): int64;
var
idHttp: tIdHttp;
begin
   result := stream.Position;

   idHttp := tIdHttp.Create(application);

   try try       
     idHttp.Get(address, stream);
     result := stream.Position - result;
   finally
      idHttp.Free; 
   end;
   except
      result := 0;
   end;
end;


procedure Tmain_form.Button1Click(Sender: TObject);
var
stream: tFileStream;
bytes: int64;
begin
   if saveDialog1.Execute then
   begin
      stream := tFileStream.create(saveDialog1.FileName, fmCreate or fmShareDenyWrite);
      bytes := getSomeFile(edit1.Text, stream);
      if bytes > 0 then
      begin
         stream.Free;
         showMessage('Успех! Скачанно '+intToStr(bytes)+' байт');
         exit;
      end;
      stream.Free;
      showMessage('Файла не существует или нет связи с сервером :(');
   end;   
end;
Надёюсь поможет!

Последний раз редактировалось Altera; 23.08.2009 в 20:48.
Altera вне форума Ответить с цитированием
Старый 24.08.2009, 05:33   #3
}{oт@бь)ч
Форумчанин
 
Аватар для }{oт@бь)ч
 
Регистрация: 16.10.2008
Сообщений: 104
По умолчанию

Можно по подробней а то я не очень понимаю!
Вообшем файл 1 и он находиться в корневой папке сайта!
Вот например мой тхт фал!
Код:
gold.zip
pioner.zip
kaskad.zip
tools.zip
Тоесть программа соответствено бует проверять таким образом
Код:
http://syte.ru/gold.zip
http://syte.ru/pioner.zip
http://syte.ru/kaskad.zip
http://syte.ru/tools.zip

Вот мне нужно чтобы я в програме вводил нужный мне сайт http://syte.ru
И и загружал в программу тхт фал потом нажимал старт!
И хорошо бы если программа показывала статистику тоесть сколько неудачных сколько всего в тхт файле слов и т д!
Вот если каталог такой на сайте есть то программа должна какбе скачать его автоматически и остановится!

Последний раз редактировалось }{oт@бь)ч; 24.08.2009 в 05:35.
}{oт@бь)ч вне форума Ответить с цитированием
Старый 25.08.2009, 01:30   #4
}{oт@бь)ч
Форумчанин
 
Аватар для }{oт@бь)ч
 
Регистрация: 16.10.2008
Сообщений: 104
По умолчанию

Так что некто неможет помочь?
}{oт@бь)ч вне форума Ответить с цитированием
Старый 25.08.2009, 02:08   #5
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Ну вот, как то так:
Код:
function GetInetFiles(URL,Text, SaveFolder: string; IDHTP: TIDHTTP): Boolean;
var
  I: Integer;
  S: String;
  L: TStringList;
  M: TMemoryStream;
begin
  Result:= False;
  S:= URL +'/'+ Text;
  L:= TStringList.Create;
  M:= TMemoryStream.Create;
 try

  if URL = '' then
  ShowMessage('Введите URL адрес !')
  else begin
  IDHTP.Get(S,M);
  M.SaveToFile('ss.txt');
  L.LoadFromFile('ss.txt');
  M.Clear;
  end;

 finally
  for I:= 0 to L.Count -1 do begin
  IDHTP.Get(URL + '/' + L.Strings[i], M);
  M.SaveToFile(SaveFolder + ExtractFileName(L[i]));
  Application.ProcessMessages;
end;
  L.Free;
  M.Free;
  Result:= True;
end;
end;
Использование
Код:
 if GetInetFiles('http:// вашь сайт','название txt файла','папка сохранения',IDHTTP1) = True then
 ShowMessage('Скачивание прошло успешно !')
 else
 ShowMessage('Скачивание завершилось с неудачей !')

Последний раз редактировалось uberchel; 25.08.2009 в 02:34.
uberchel вне форума Ответить с цитированием
Старый 25.08.2009, 11:09   #6
}{oт@бь)ч
Форумчанин
 
Аватар для }{oт@бь)ч
 
Регистрация: 16.10.2008
Сообщений: 104
По умолчанию

Можно пожалуйста исходник а то не очень понимаю что и куда вставлять!
И еше if GetInetFiles('http:// вашь сайт','название txt файла','папка сохранения',IDHTTP1) = True then
папка сохранения должна (Нужно чтобы сохранялось в папку куда укажут!)
}{oт@бь)ч вне форума Ответить с цитированием
Старый 25.08.2009, 13:49   #7
}{oт@бь)ч
Форумчанин
 
Аватар для }{oт@бь)ч
 
Регистрация: 16.10.2008
Сообщений: 104
Сообщение

Вот пример


Тоесть програма должна проверять наличие файла в корневой папке

Код:
http://google.ru/knopka.zip
http://google.ru/lipo.zip
http://google.ru/ytka.zip
http://google.ru/milka.zip
http://google.ru/sigareta.zip
http://google.ru/vodka.zip
Вот таким образом она проверяет и если какойто из этих файлов есть то качает его туда куда изначально указал человек в нашем случаи это

Если такой файл есть сохранить его в
Надеюсь теперь понятно обьяснил)
И еше нюанс если програма нашла файл и закачала его нужно чобы вылетело окошко что програма успешно завершена

Последний раз редактировалось }{oт@бь)ч; 25.08.2009 в 13:52.
}{oт@бь)ч вне форума Ответить с цитированием
Старый 25.08.2009, 19:07   #8
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Издевайтесь что-ли, я и так все расписал!!!! Ну ладно:

Код:
procedure TForm1.Button1Click(Sender: TObject); // нажимаем на кнопку
var
 sCHDir: string; //Переменная, хранит директорию сохранения
begin
 if SelectDirectory('Выберите каталог', '', sCHDir) then  //Вывод обзора папок

 if GetInetFiles('http://www.google.com','files.txt',sCHDir,IDHTTP1) then //скачка и вернула TRUE

    ShowMessage('Скачивание прошло успешно !') //скачало все успешно
 else
    ShowMessage('Скачивание завершилось с неудачей !') //скачала с ошибкоми и вернула FALSE
 else
    ShowMessage('Действие отменено пользователем !') // Действие отменено
end;
Можно убрать все Мессаги :

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 sCHDir: string;
begin
 if SelectDirectory('Выберите каталог', '', sCHDir) then
    GetInetFiles('http://www.google.com','files.txt',sCHDir,IDHTTP1);
end;
Ваш URL адрес- адрес вашего сайта !
File.txt - текстовый файл, в котором описаны файлы, он находиться на сайте !
uberchel вне форума Ответить с цитированием
Старый 26.08.2009, 04:50   #9
}{oт@бь)ч
Форумчанин
 
Аватар для }{oт@бь)ч
 
Регистрация: 16.10.2008
Сообщений: 104
По умолчанию

И что это чтото я невижу Edit1.Text; для ввода сайта не вижу комапонент memo1 невижу где созраняется файл куда выбрал человек!
Если нетрудно дайте исходники программы!
Плюс по вашему коду если вожу несушествуюший сайт программа виснет!

Последний раз редактировалось }{oт@бь)ч; 26.08.2009 в 04:53.
}{oт@бь)ч вне форума Ответить с цитированием
Старый 26.08.2009, 12:19   #10
bill_gates
Ненависник Windows
Пользователь
 
Аватар для bill_gates
 
Регистрация: 04.07.2009
Сообщений: 82
По умолчанию

Цитата:
Сообщение от }{oт@бь)ч Посмотреть сообщение
И что это чтото я невижу Edit1.Text; для ввода сайта не вижу комапонент memo1 невижу где созраняется файл куда выбрал человек!
Вы про переменные знаете? А про функции?

Код:
procedure TForm1.Button1Click(Sender: TObject); // нажимаем на кнопку
var
 sCHDir: string; //Переменная, хранит директорию сохранения
begin
 Memo1.Lines.SaveToFile('files.txt');  //Сохраняем файл
 if GetInetFiles(Edit1.Text,'files.txt',sCHDir,IDHTTP1) then //скачка и вернула TRUE

    ShowMessage('Скачивание прошло успешно !') //скачало все успешно
 else
    ShowMessage('Скачивание завершилось с неудачей !') //скачала с ошибкоми и вернула FALSE
 else
    ShowMessage('Действие отменено пользователем !') // Действие отменено
end;
Ну папку куда сохранять думаю сами укажете в sCHDir.

Цитата:
Сообщение от }{oт@бь)ч Посмотреть сообщение
Если нетрудно дайте исходники программы!
[offtop]На холяву хотите получить?[/offtop]

Цитата:
Сообщение от }{oт@бь)ч Посмотреть сообщение
Плюс по вашему коду если вожу несушествуюший сайт программа виснет!
А вот как с этим бороться пока не знаю.

Лучше вам сначала литературу по дельфи почитать.
if Вопрос.Возник then begin if Google.Поиск=false then begin СоздатьТопик; end; end;

if ДругойЮзер.Помог then begin НажатьНаВесы end;
bill_gates вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка БД в Делфи Neymexa Помощь студентам 5 25.12.2008 21:18
Проверка Манжосов Денис :) Общие вопросы Delphi 4 17.10.2008 16:27
Требуется специалист для создания сайта со строгой аутентификацией или зашифрованного сайта. artembar Фриланс 1 01.09.2008 16:11
Проверка папок Gladiator Общие вопросы Delphi 4 29.05.2008 19:48