Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/57: Рейтинг темы: голосов - 57, средняя оценка - 4.91
 Аватар для Lokki
4 / 4 / 2
Регистрация: 01.03.2009
Сообщений: 128

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

01.03.2009, 22:02. Показов 11810. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru