Вопрос № 108084: Уважаемые эксперты, не могли бы Вы, написать небольшую программу под Turbo C с использованием АТ-команд модема, которая бы по нажатию клаивиши (например 1) заставляла модем (СОМ) набирать номер. Под DOSом прописываю ECHO ATM1L3X0DT12345 > COM2 - м...Вопрос № 108199: Уважаемы эксперты, помогите пожалуйста написать программу на С++ используя список :
Составить программу, которая содержит информацию о квартирах, содержащихся в Базе данных бюро обмена квартир. Сведения о каждой квартире содержат :
- количест...
Вопрос № 108.084
Уважаемые эксперты, не могли бы Вы, написать небольшую программу под Turbo C с использованием АТ-команд модема, которая бы по нажатию клаивиши (например 1) заставляла модем (СОМ) набирать номер. Под DOSом прописываю ECHO ATM1L3X0DT12345 > COM2 - модем набирает номер, а под клавишу забиндовать не получается. Пробую записать в регистр модема число, ничего не получается. Еще бы под пару других клавиш пару других комад забиндить, это было бы вообще шикарно...
Заранее благодарен.
Отвечает: Rockie
Здравствуйте, Ивановиков Иван Сергеевич!
Не совсем понятен ваш вопрос - вы не знаете какие команды модема использовать или как забиндить команду на клавишу. Если вопрос про клавишу:
В windows можно создавать hook, который перехватывает системные сообщения, в том числе события нажатия клавиш. Но в DOS этого сделать нельзя, так как в DOS отсутствет многопоточность. И если написать программу, в которой забиндить клавишу вызова модема, вы не сможете запустить эту программу в "фоновом режиме", вам нужно будет запускать эту программу, нажимать клавишу и закрывать эту программу.
Возможно вам стоит вынести ваши команды в bat-файл и запускать его. С программированием bat-файлов вы можете ознакомиться тут:
"Задачи на bat-файлах"
http://forum.ru-board.com/topic.cgi?forum=62&topic=6156&start=0
Ответ отправил: Rockie (статус: 5-ый класс)
Ответ отправлен: 05.11.2007, 13:39
Отвечает: Ross
Здравствуйте, Ивановиков Иван Сергеевич!
Чтото типа того, что в приложении. К сожалению нет под рукой модема чтобы проверить, но наверно должно работать.
И не советовал бы вам использовать Turbo C. Очень древняя весч... Лучше уже заюзать Visual Studio, тем более что в нем тоже можно делать консольные приложения.
Приложение:
--------- Доступно только то, что видимо (c) Б. Керниган
Ответ отправил: Ross (статус: Студент)
Ответ отправлен: 06.11.2007, 02:04
Отвечает: Титов Михаил Анатольевич
Здравствуйте, Ивановиков Иван Сергеевич!
Если нужна программа, которая по клавише посылает команду в модем, то она включает две части - некий клавиатурный диспетчер и финкция работы с модемом. В приложении программа, использующая некий вариант консольного меню.
Набор команд задается в массиве mcom. Может расширяться и дополнятся, но должен быть согласован с меню и оператором switch.
Для передачи команды в модем в простейшем случае может использоваться функция bioscom из библиотеки TC. Наша функция sendcom просто тупо гонит в com-порт символы из строки своего параметра. Однако её реализация может быть любой, вплоть до прямой записи в регистры ввода-вывода с настройкой параметров и диагностикой.
Приложение:
Ответ отправил: Титов Михаил Анатольевич (статус: 2-ой класс)
Ответ отправлен: 06.11.2007, 02:27
Вопрос № 108.199
Уважаемы эксперты, помогите пожалуйста написать программу на С++ используя список :
Составить программу, которая содержит информацию о квартирах, содержащихся в Базе данных бюро обмена квартир. Сведения о каждой квартире содержат :
- количество комнат
- общую площадь
-этаж
- адрес
Программа должна обеспечить формирование картотеки, ввод заявки на обмен, поиск подходящего варианта( при равенстве количества комнат и этажа и различия площадей в пределах 10% процентов выводится соответствующая карточка, а сами сведения удаляются из списка, в противном случае поступившая заявка добавляется в список)
вывод всего списка.
заранее очен благодарен....))
или хотя бы подскажите как создается список)
Отвечает: Ross
Здравствуйте, Пушкин Евгений Владимирович!
Проще всего создать список в стиле C:
struct lNode
{
//---какието полезные данные
struct lNode* next;
} *LastEntry = 0;
//---создание записи
tmp = new lNode; tmp.next = LastEntry;
LastEntry = tmp;
//---поиск
for (lNode* fn = LastEntry; fn != 0; fn = fn->next)
{
if (//---какоето данное в fn нас заинтересовало)
{
//---делаем чтонибуть
}
}