Консультация № 26242
13.09.2005, 04:45
0.00 руб.
0 3 3
Здравствуйте эксперты!
Суть вопроса: Мне необходимо сделать "Автоматическое обновление программы" через сеть (локальную, модем) и скачать с моей странички файл, например version.txt, в котором содержится версия программы вылаженная на сервер, то есть на моей страничке. После чего сравнить с имеющейся на компьютере версией и закачать обновление.
1. Какие компоненты в Delphi делают всю работу с сокетами (подозреваю, что Indy).
2. Как запрограммировать это всё (ВАЖНО)!
3. Как скачать файл имеющийся на сервере.

Обсуждение

Неизвестный
13.09.2005, 07:54
общий
это ответ
Здравствуйте, Подболотов Иван Алексеевич!
Можно проводить операции с файлом - будто он локальный CopyFile
C заданием адреса типа http://www.serv.ru/file.txt
Неизвестный
13.09.2005, 11:36
общий
это ответ
Здравствуйте, Подболотов Иван Алексеевич!
1. Если вам необходима простая закачка, самое простое использовать компоненту NMHTTP (обычно она находится во вкладке FastNet или, я думаю, вы без проблем ее скачаете)
2, 3. см. приложение

Приложение:
socket := TNmHttp.create(nil)socket.Body := fname; // имя файла, куда будет //производится закачкаsocket.InputFileMode := true; //говорит о том, что //закачка будет производится в файлwebaddress = ‘http://www.youraddress/yourfile‘;try socket.Get(webaddress); // получение файла по //адресу webaddress except // если закачка не произошла showmessage(error)end;
Неизвестный
13.09.2005, 12:11
общий
это ответ
Здравствуйте, Подболотов Иван Алексеевич!
1.Indy - очень мощные компоненты!
Если вам не требуется всей функциональности этих компонент, например, надо только реализовать функции GET или POST протокола HTTP, то можно поискать на сайтах с компонентами, вроде torry.ru – там обязательно сыщется много различных библиотек, по большей части бесплатных, и с исходным кодом.
2.Я бы сделал это используя Internet WinAPI.
3. Есть такая функция UrlDownloadToFile не забудте подключить ShellApi и URLMon.
Пример:
UrlDownloadToFile(nil, PChar(‘http://img.yandex.ru/i/logo76x44.gif‘), PChar(‘c:\logo76x44.gif‘), 0, nil);

Форма ответа