Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление файла через интернет, Как здлеть 
:(
    Опции темы
ivan219
  Дата 25.2.2006, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: нет
Всего: 12



Вобщем хочг зделать обновление через инет чтоб незаходить на сайт и не смотреть появилась новая версия файли или нет а просто нажал на кнопку и если появилось окно что новая версия есть то загзить её а если нет то нет как это можно реализовать smile
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 25.2.2006, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Для тех, кто хочет все делать самостоятельно (без помощи сторонних компонентов), есть модуль WinInet, который позволяет работать с файлами через HTTP и FTP. Немного поискав по форуму, можно найти примеры скачивания файла с сервера.

Как узнать, что есть обновление? Как вариант: первые n-байт или символы до определенного "разделителя" будут указывать версию файла. Программа на компьютере пользователя всегда должна знать с какой версией файла она работает. Отсюда всегда можно узнать появилась ли новая версия файла, а именно сравнить текущую версию файла с прояитанным заголовком файла с сервера. Загружая файл с сервера на машину пользователя, следует проигнорировать версию, т. е. первые n-байт или символы до "разделителя", включая его самого.
PM   Вверх
Guedda
Дата 25.2.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Вот тебе:
Код

function GetInetFile(fileURL, FileName : string) : boolean;
const
  BufferSize = 1024;
var
  hSession, hURL : HInternet;
  Buffer : array[1..BufferSize] of byte;
  BufferLen : DWORD;
  f : file;
  sAppName : string;
  Path : string;

function IsConnectedToInternet: Boolean; // проверяет, есть ли соединение с интернетом.
var
  dwConnectionTypes: DWORD;
begin
  dwConnectionTypes :=
    INTERNET_CONNECTION_MODEM +
    INTERNET_CONNECTION_LAN +
    INTERNET_CONNECTION_PROXY;
  Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;

begin
  Result := false;
  if not IsConnectedToInternet then begin
    MessageDlg('Нет соединения с интернетом!', mtWarning, [mbOk], 0);
    Exit;
  end;
  GetDir(0, Path);
  sAppName := ExtractFileName(Path + '\MyProg.exe');
  hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenURL(hSession,
    PChar(fileURL),
    nil,0,0,0);
    try
      AssignFile(f, FileName);
      Rewrite(f,1);
      repeat
        InternetReadFile(hURL, @Buffer,
        SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen)
      until
        BufferLen = 0;
      CloseFile(f);
      Result:=True;
    finally
      InternetCloseHandle(hURL)
    end;
  finally
    InternetCloseHandle(hSession)
  end;
end;



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
ivan219
Дата 26.2.2006, 03:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: нет
Всего: 12



Да попробую.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.