Аватар для Lokki
4 / 4 / 2
Регистрация: 01.03.2009
Сообщений: 128

Связь с интернетом

01.03.2009, 22:02. Показов 12084. Ответов 52
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу использовать ковертацию денег из гривны в иностранные валюту в режиме онлайн. Курсы валют нужно брать отсюда http://podrobnosti.ua/finance/ . Помогите пожалуйста.

Помогите пожалуйста. Очень надо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2009, 22:02
Ответы с готовыми решениями:

Связь с интернетом
Недавно возник такой вопрос, можно-ли с помощью QBasic обратиться к файлу находящемуся на удалённом сервере? Было-бы очень интересно узнать...

Связь с интернетом
Добрый день. Решил перебраться с Сишника на WEB-программирование. Но для того что бы лучше понять что оно из себя представляет хочу...

Пропадает связь с интернетом.
В общем такая проблема. Как установил винду через несколько недель началось следущее: пропадает полносью связь с интернетом но соединение...

52
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
25.04.2009, 16:34
Студворк — интернет-сервис помощи студентам
Заиспользовал класс TInetFile. На линковке выдаёт ошибку

Code
1
2
[ILINK32 Error] Error: Unresolved external 'InternetCloseHandle' referenced from E:\HOME\EVG\CGS\RICOM\DEBUG\FORMMAIN.OBJ
[ILINK32 Error] Error: Unresolved external 'InternetReadFile' referenced from E:\HOME\EVG\CGS\RICOM\DEBUG\FORMMAIN.OBJ
Я так понимаю, что для этого нужно дополнительную библиотеку подключить. А потому вопрос:
Где это делается в билдере? У меня C++ Builder 2007, но я попробовал открыть вариант Otaka в C++ Builder 6 и поковыряться в опциях проекта - как-то не заметил, что какие-то дополнительные флаги линкеру подаются

Добавлено через 17 минут 39 секунд
Добавил к файлам проекта библиотеку wininet.lib, которую взял напрямую оттуда, куда проинсталлирован билдер. Очень сильно подозреваю, что это несколько через задницу, подскажите, как это сделать по-человечески

Добавлено через 2 часа 13 минут 24 секунды
Кому интересно, как работать с инетом - есть более-менее сносное описание
http://www.rsdn.ru/summary/279.xml
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
26.04.2009, 15:38
Я в принципе так и делал. Что не записал это в комментах, это моя бооольша ошибка. А почему именно так - http://www.rsdn.ru/Forum/message/341764.flat.aspx

Добавлено через 1 минуту 23 секунды
Хотя в принципе можно было и сделать
C++
1
#pragma(lib,"")
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
26.04.2009, 21:22
У меня вопрос по поводу StringGrid
По умолчанию там самые левые и самые вернхние поля считаются заголовками, а потому выделаются другим цветом. В твоей программе этого нет. Я так понимаю, что ты ты принудительно всем полям задавал цвет? Если да, то как? Если нет, то всё равно как?

Добавлено через 1 час 6 минут 28 секунд
Выделенные слева и справа - это свойства FixedCols и FixedRows

Добавлено через 2 минуты 4 секунды
А подкрашенная верхушка - видимо это FixedColor
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
26.04.2009, 21:23
Ага. Абсолютно правильно.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
26.04.2009, 22:01
А у StringGrid'а есть возможность подкрашивания конкретной ячейки отдельным цветом? А то я что-то не нашёл подобного. Или вместо StringGrid'а может есть что-то другое, что умеет так делать?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
26.04.2009, 22:04
Конечно можно подкрашивать, закрашивать и рисовать в ячейке. Используй событие OnDrawCell и малюй там все, чего твоя душа просит.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
27.04.2009, 08:22
По поводу цвета отдельной ячейки что-то нашёл

Для Delphi очень много всего, наиболее понятное, вроде бы, вот это:
[ссылки на какие-то форумы]
Для С++ пока нашёл только одно:
[ссылки на какие-то форумы]
Добавлено через 24 минуты 58 секунд
По Delphi не ту ссылку кинул. Правильная
[ссылки на какие-то форумы]
Добавлено через 9 часов 40 минут 17 секунд
Тогда вот такой вопрос. Когда скачиваем стариницы подобным методом, то в случае, если сайт тормозит (или отвалился инет), приложение как бы подвисает (т.е. не реагирует ни на что, окно не перерисовывается) из-за того, что долго болтается в этих процедурах работы с сетью. Как люди с этим борются?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
27.04.2009, 20:35
Например, можно качать в отдельном потоке, тогда ничего подвисать не будет.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
27.04.2009, 21:34
Цитата Сообщение от Otaka Посмотреть сообщение
Например, можно качать в отдельном потоке, тогда ничего подвисать не будет.
Но при такой логике получается так: запускаем отдельный поток для скачивания, а в основной программе ждём, пока поток завершится. И получается так, что пока мы ждём - это тоже выглядит как подвисание (т.е. всё равно, где программа болтается - в цикле ожидания или в процедуре скачивания страницы)
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
27.04.2009, 21:42
Но ведь ждать то можно по-разному.
Если ждать так:
C++
1
2
3
4
5
6
7
8
while(true)
  {
  if(IsTreadEnd()==true) //Как-то проверяем окончание того потока.
        {
        break;
        }
   Application->ProcessMessage();//Обрабатываем сообщения.
  }
А ведь можно еще и ждать по таймеру. Скажем, проверять окончание скачивания раз в секунду.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
28.04.2009, 11:01
Вот это вот что такое?
C++
1
Application->ProcessMessage();//Обрабатываем сообщения.
Я так понимаю, это возврат в систему (где в случае чего перерисуются окна) и ОС не будет считать нас зависшим процессом? А когда мы в цикле постоянно это дёргаем, это не сть случайно загрузка процессора или всё-таки надо sleep вставлять?

Добавлено через 11 часов 6 минут 8 секунд
И ещё два маленьких вопросика
1. Как работать с потоками
2. Как работаь с таймером
Мне хотябы перечислить имена интерфейсов, обработчиков ситуаций и т.п., дальше я сам поищу
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
28.04.2009, 14:53
Загрузка процессора при этом обычная. это почти то же самое, когда приложение работает в своем обычном режиме. Так же есть бесконечный цикл, где идет обработка сообщений(если они есть). Конечно можно и замирать, к примеру, на 10 миллисекунд (Sleep(10)), но это по желанию.
С потоками работать можно так:
создаешь потомка класса TThread, и переопределяешь метод Execute.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class TVisualThread:public TThread
{
public:
__fastcall TVisualThread(bool CreateSuspended): TThread(CreateSuspended)
{
}
 
void __fastcall Execute()
        {
        Form1->SomeFunction();
        delete this;//Можно поток удалить из самого себя, когда он закончится.
        }
};
А как же в Билдере работать с таймером? Наверное, наиболее простой способ - взять стандартный компонент TTimer.
1
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
28.04.2009, 14:53
Цитата Сообщение от Otaka Посмотреть сообщение
Загрузка процессора при этом обычная. это почти то же самое, когда приложение работает в своем обычном режиме. Так же есть бесконечный цикл, где идет обработка сообщений(если они есть). Конечно можно и замирать, к примеру, на 10 миллисекунд (Sleep(10)), но это по желанию.
Здесь может быть, а вообще иногда бывает и большая, когда всякие вычисления и в них ProcessMessages. Можно так попробовать:
Code
1
2
MsgWaitForMultipleObjectsEx(0, 0, 1000, QS_ALLINPUT, 0);
Application->ProcessMessages();
Тогда процессор грузиться не будет особо и интерфейс не будет тормозить
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
28.04.2009, 15:22
А MsgWaitForMultipleObjectsEx чего делает?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
28.04.2009, 15:47
Если сложные вычисления в цикле, то ProcessMessage действительно может сильно затормозить, я в таких сдучаях, чтобы не писать MsgWaitForMultipleObjectsEx
поступаю гораздо проще(хотя и не совсем правильно)
C++
1
2
3
4
for(int i=0;i<787799966;i++)//Какие-то супер вычисления
       {
       if((i%1000)==0)Application->ProcessMessages();
       }
Но ждать сигнала системы конечно же лучше.
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
28.04.2009, 15:50
Цитата Сообщение от Evg Посмотреть сообщение
А MsgWaitForMultipleObjectsEx чего делает?
MSDN рулит!
Ждёт до тех пор, пока какой-нибудь объект из заданных (либо все) не перейдёт в сигнальное состояние, или в очереди появится APC, или пройдёт заданный интервал времени, или в очереди появится сообщение.
Здесь: ждёт, пока не придёт сообщение или пройдёт секунда.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
28.04.2009, 15:51
Мужики, спасибо за советы, но если не сложно, хотелось бы услышать какие-то пояснения. Для начала меня устроит вариант, что тупо сделаю то, что посоветовали, но в идеале хотелось бы ещё и понимать, что делаю
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
30.04.2009, 22:37
Так ты спрашивай что не понятно. Там и объяснить попробуем.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
30.04.2009, 23:02
Цитата Сообщение от Otaka Посмотреть сообщение
Так ты спрашивай что не понятно. Там и объяснить попробуем.
ТОлько щас заметил, что пока я писал свой вопрос, Somebody уже ответил на него. Я про пост 38.

Правда мне не совсем понятно. Т.е. влепил я в цикл такое ожидание и в цикле мы вертимся. При этом даже если зависаем на сети, то процесс выглядит как живой и всё нормально перерисовывается. Теперь пользователь нажал на кнопку "Стоп" (ну типа он видит, что с инета слишком долго грузится и решил забить). Что произойдёт? Ну выйду я из этой процедуры и начну продолжать болтаться в цикле, ожидая окончания потока (который всё ещё пытается что-то скачать). И всё начнётся сначала. И таким образом в обработкик нажатия кнопки я не попаду. Или я как-то не так понимаю? Или в случае с кнопкой надо как-то по другому делать?
0
 Аватар для Otaka
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
01.05.2009, 12:43
Хм...
Мы ведь там(в потоке скачивания) висим в цикле, и все действительно начнется заново.
Но ведь можно в том же цикле поставить проверку на какую-нибудь глобальную переменную, и если она установится в некоторое значения, то break. Правда ждать прийдется достаточно долго, ведь у InternetReadFile достаточно большой интервал ожидания. А можно (но это как-то по варварски) TerminateThread(MyDownloadThr->Handle,0). Не знаю. Я с потоками не сильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.05.2009, 12:43
Помогаю со студенческими работами здесь

Связь с интернетом пропадает
Начались разрывы связи с нетом, особенно, если я файлы раздаю... Высвечивается окошко, что нельзя установить соединение, нажимаю...

Связь консоли с Интернетом
У меня возник такой вопрос, можно ли как-нибудь написать на СИ программу, которая будет делать что-то в интернете, ну хоть что-то, например...

Постоянно обрывается связь с интернетом
Здравствуйте, у меня возникла вот какая проблема. Последнее время постоянно обрывается связь с интернетом. Вот например он работает минуты...

Через некоторое время пропадает связь с интернетом
Когда начинаю лазить по интернет (открывать разные сайты, переходить по ссылкам итд) минут через 10-20 пропадает связь с инетом. При...

Через некоторое время связь с интернетом пропадает - Dns_probe_finished_bad_config
В общем проблема такая. Подключение к интернету есть, но через некоторое время связь с интернетом пропадает. Браузер выдает ошибку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru