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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2014, 15:44   #1
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
По умолчанию Доработка кода

Сейчас проверяю обновление и загружаю его таким образом:

Код:
{
    if (File.Exists("ver.txt"))
{
}
else
{
    File.AppendAllText("ver.txt", "1.1");
}
WebClient vers = new WebClient();
string vers1 = vers.DownloadString("http://update.txt");
string verc1 = File.ReadAllText("ver.txt");
if (verc1 != vers1)
{
MessageBox.Show("Найдено обновление");
vers.DownloadFile("http://update.exe", "update.exe");
Process.Start("update.exe");
}
else
{
MessageBox.Show("Обновлений нет");
}
File.Delete("ver.txt");
}
Работает так: Проверяю существует ли файл ver.txt, если нет то подгружаю его с сервера, и проверяю в нем версию и сравниваю её с текущий, если отличается то загружаю update.exe и удаляю ver.txt, если версии совпадают то вывожу сообщение и удаляю ver.txt. Хотелось бы немного доработать код, а именно не загружать этот txt а проверить версию прямо на сервере.
mogo вне форума Ответить с цитированием
Старый 16.02.2014, 16:49   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Читать файлы расположенные на сервере без их загрузки с него может только программа, которая работает на этом сервере.
Для проверки версии на сервере можно написать сервис, который будет принимать от Вашей программы, например по протоколу TCP, сведения о номере установленной версии и передавать ей обратно результат проверки.
Разумеется, что трудоёмкость разработки этого сервиса будет выше, чем просто
Цитата:
немного доработать код
Streletz вне форума Ответить с цитированием
Старый 16.02.2014, 17:20   #3
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Читать файлы расположенные на сервере без их загрузки с него может только программа, которая работает на этом сервере.
Для проверки версии на сервере можно написать сервис, который будет принимать от Вашей программы, например по протоколу TCP, сведения о номере установленной версии и передавать ей обратно результат проверки.
Разумеется, что трудоёмкость разработки этого сервиса будет выше, чем просто
Что программа не может открыть txt на сервере и сравнить версию? По мне так бред...
mogo вне форума Ответить с цитированием
Старый 16.02.2014, 18:04   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Что программа не может открыть txt на сервере и сравнить версию?
Программа работает в среде той ЭВМ, на которой она запущена. Простите, но об этом написано даже в элементарных учебниках. Если она запущена на клиентском ПК, то файл, который лежит на сервере она откроет на клиентском ПК.
На сервере его, может открыть только та программа, которая запущена на нём.
Streletz вне форума Ответить с цитированием
Старый 16.02.2014, 18:20   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
По мне так бред...
даже этот "бред" читаю потому что он уже у меня на компьютере, и никак иначе.
eval вне форума Ответить с цитированием
Старый 16.02.2014, 18:23   #6
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Программа работает в среде той ЭВМ, на которой она запущена. Простите, но об этом написано даже в элементарных учебниках. Если она запущена на клиентском ПК, то файл, который лежит на сервере она откроет на клиентском ПК.
На сервере его, может открыть только та программа, которая запущена на нём.
Ну например в делфи без проблем можно проверить, например так:
Код:
update=IdHTTP1.Get('http://update.txt');
if pos('1.0',update)<>0 then
begin
showmessage ('Обновлений нет');
end else
begin
showmessage ('Доступно обновление!');
end;
Почему в друг на C# так сделать нельзя?
mogo вне форума Ответить с цитированием
Старый 16.02.2014, 18:27   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а у вас в коде что как-то иначе?
eval вне форума Ответить с цитированием
Старый 16.02.2014, 18:29   #8
mogo
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 40
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а у вас в коде что как-то иначе?
Который на C# да, мне приходится загружать файл. А пример который я привел на Delphi, я просто делаю запрос к этому txt и проверяю, не чего не загружая.
mogo вне форума Ответить с цитированием
Старый 16.02.2014, 18:42   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

т.е. что делает IdHTTP1.Get вы не в курсе, и читать не охота?
ну ок, расскажу, вся информация в компутере, это нолики и единички, и не важно где они на сервере или еще где, чтобы понять чего там и где эти нолики и единички их надо увидеть, т.е. кому-то куда-то сходить
вы через проводки пройти не сможете (пока...) тогда придумали что они должны к вам приходить, логично?
eval вне форума Ответить с цитированием
Старый 16.02.2014, 18:48   #10
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
не чего не загружая
Простите, но я Вас тоже глубоко разочарую. Дело в том, что здесь также происходит загрузка. Возможно, что из-за особенностей архитектуры Indy это не совсем очевидно, для не посвящённых, но это на самом деле так. Подробнее можно посмотреть здесь: Компонент IdHTTP.
Поэтому, если хотите, чтобы проверка обновлений действительно выполнялась, пишите соответствующую программу.
Streletz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработка VBA кода MaxxVer Microsoft Office Excel 6 19.04.2012 15:38
Доработка кода авторизации Fastah БД в Delphi 1 22.03.2011 12:25
Доработка кода авторизации Fastah Помощь студентам 7 22.03.2011 11:45
С++ нужна корректировка\доработка кода. Akmall Помощь студентам 1 19.12.2010 16:34
С++ нужна корректировка\доработка кода. Akmall Помощь студентам 3 10.12.2010 22:51