Вопрос № 102801: Привет всем!
Вот простенькая задачка, но не могу сделать (не знаю, как определить, является ли цифра десятков пятеркой и вообще как все это миниатюрненько записать): Написать оператор присваивания, в результате выполнения которого логическая пере...Вопрос № 102895: Здравствуйте господа программисты!
А не подскажите как (если это возможно) в XP перехватить данные по COM-порту. Некая прога общается с прибором, а мне ОЧЕНЬ нужно знать о чем "они говорят".
Заранее благодарен, Сергей....
Вопрос № 102.801
Привет всем!
Вот простенькая задачка, но не могу сделать (не знаю, как определить, является ли цифра десятков пятеркой и вообще как все это миниатюрненько записать): Написать оператор присваивания, в результате выполнения которого логическая переменная t получает значение true, если выполняется условие: цифра 5 входит в десятичную запись трехзначного целого цисла k, и значение false иначе.
Ответ нужен срочно. Кто быстро ответит, тому пятерка. :)
Жду с нетерпением!
Отправлен: 20.09.2007, 18:47
Вопрос задал: LexXx (статус: Практикант)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Aristos
Здравствуйте, LexXx!
число десятков в числе равно 5:
bool b = (5 == (n%100)/10);
одна из цифр трехзначного числа равна 5:
bool b = (5 == n%10) || (5 == (n%100)/10) || (5 == n/1000);
--------- нет ничего невозможного
Ответ отправил: Aristos (статус: 6-ой класс)
Ответ отправлен: 20.09.2007, 19:06 Оценка за ответ: 5 Комментарий оценки: Премного благодарен за ответ! Вы меня выручили! :)
Отвечает: Терсков Сергей
Здравствуйте, LexXx!
А если число не трехзначное ? По моему лучше перевести число в строку и в ней уже производить поиск. Тем более что искомых цифр может быть много... Функция в примере ищет все заданные цифры в числе, и возвращает их в виде массива индексов...
Приложение:
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 21.09.2007, 04:59
Вопрос № 102.895
Здравствуйте господа программисты!
А не подскажите как (если это возможно) в XP перехватить данные по COM-порту. Некая прога общается с прибором, а мне ОЧЕНЬ нужно знать о чем "они говорят".
Заранее благодарен, Сергей.
Отвечает: Maxim V.G.
Здравствуйте, Тюрин Сергей Николаевич!
Дело в том, что СОМ порту может обращаться только одно приложение. Для всех других этот порт будет занят. Поэтому для реализации Вашей задачи надо заставить "некую" прогу обращаться не напрямую с СОМ порту, а к Вашей проге, которая будет считывать исключительно для Вас все данные. Для того чтобы заставить "некую" прогу работать с Вашей прогой можно поставить хук или порыться в сторону драйвера СОМ порта с целью его подмены.
Про работу с ХУКами можно почитать тут: http://rsdn.ru/article/baseserv/HookTools.xml
Про работу с СОМ и другими SerialPort можно почитать тут: http://www.codeguru.com/Cpp/I-N/network/serialcommunications/article.php/c5425
Правда последняя на инглише.
--------- Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 4-ый класс)
Ответ отправлен: 21.09.2007, 16:59
Отвечает: Ross
Здравствуйте, Тюрин Сергей Николаевич!
Нужно перехватить API функции ReadFile и WriteFile.
Методика перехвата API методом подмены таблицы импорта подробно описана в книге: Дж. Рихтер "Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows"
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 21.09.2007, 17:55