Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 790
от 08.07.2007, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 488, Экспертов: 59
В номере:Вопросов: 2, Ответов: 3


Вопрос № 93685: Здравствуйте, уважаемые эксперты. Конкретизирую посланный недавно вопрос, так как ответы мне не очень помогли. Исходные данные: программа, в которой имеется элемент listbox, содержащий определённый список элементов. Необходимо пройтись по в...
Вопрос № 93702: Здравствуйте уважаемые ЭКСПЕРТЫ я пока ещё даже не чайник, а только начал изучать первый язык программирования С++ до этого я не знал ни одного языка купил книги, но дело вот в чём есть уроки, но нет пояснений какие заголовки и для чего о...

Вопрос № 93.685
Здравствуйте, уважаемые эксперты.
Конкретизирую посланный недавно вопрос, так как ответы мне не очень помогли.
Исходные данные: программа, в которой имеется элемент listbox, содержащий определённый список элементов. Необходимо пройтись по всем элементам списка и выбрать каждый элемент. То есть необходимо нажать клавишу вниз и ентер. Я реализовал это следующим образом (см. приложение), движение вниз есть, а вот ентер не срабатывает на элементы списка, только на кнопки, если например поэкспериментировать с другими программами. И в Windows'е также на значки, папки и прочее программный ентер не срабатывает, а движение вниз есть.
Если кто-нибудь с этим сталкивался или знает в чём проблема и как её исправить или как это можно реализовать по другому, пожалуйста помогите.
Заранее спасибо.

Приложение:

Отправлен: 02.07.2007, 20:01
Вопрос задал: Gines (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зелик Колабухин
Здравствуйте, Gines!

Может вместо VK_EXECUTE нужно использовать VK_RETURN, вроде как она у нас ентер?
Ответ отправил: Зелик Колабухин (статус: 3-ий класс)
Ответ отправлен: 03.07.2007, 14:49
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо, помогло.


Вопрос № 93.702
Здравствуйте уважаемые ЭКСПЕРТЫ я пока ещё даже не чайник, а только
начал изучать первый язык программирования С++ до этого я не знал ни
одного языка купил книги, но дело вот в чём есть уроки, но нет пояснений
какие заголовки и для чего они нужны как подключать сторонние заголовки
и библиотеки я вам задавал один вопрос по CONIO библиотеки дело в том
что эта библиотека разработана для Dev C++ но, по какой причине она и там
не работает инструкции выполнил, как указано, но всё равно не работает
потом скопировал, подчёркиваю заголовки и библиотеки в Code::Blocks v1.0
эта среда мне больше нравится она удобней, по крайней мере, для меня хотя
есть и свои недостатки, но не об этом мои переживания, по какой причине они
не работают, подскажите, как их заставить каректно работать в Code::Blocks
и можно ли с теми средствами которые устанавливаются при установке
программы выполнить те же действие что и с библиотекой CONIO то есть
чтобы текст выводился цветом и в любой позиции, и вообще, какими средствами
можно это сделать, например, вывести в консоль такой форматированный текст
указан ниже и попросить ввести к примеру имя и все по середине или с другого
краю текст и по середине
пример:

обыкнавенный Миру мир солдату дембель!
Голубым размер шрифта 14 Введите ваше имя: ???????
Синий размер шрифта 16 ??????? спит, служба идет!

Примерно в таком виде ну я, наверное, вас загрузил многословностью одним
словом меня интересуют косметические возможности напишите, пожалуйста
какой нибуть пример, но с каментариями, что за что отвечает.

Вопрос 2: Как пишется программа с параметрами, например калькулятор
к примеру
набираю в командной строке
calculator /? выводится справка о программе
calculator /u программа переходит в режим умножения после умножения нужных
чисел возвращается на исходную
calculator /d соответственно деление далее тоже самое
ну и, к примеру, end выйти из программы.

Примерно по такому шаблону

Или по такому
Ввожу calculator, после чего выдается справка

Нажмите Q, чтобы выйти из программы, U чтобы умножить P продолжить X прервать, D чтобы делить,? вывести справку. Где P продолжает режим, к примеру, деления, а X выходит из режима
деления и передаёт управление в начало программы, где можно перейти к примеру
умножению я вас, наверное, утомил последний вопрос
по какой причине компилятор выдаёт такую ошибку
warning: no newline attend of file

все примеры чтобы можно было спроектировать в IDE Code::Blocks
убедительная просьба по возможности с подробным описанием кода.

примечание: имя установочного файла с библиотекой CONIO
conio-2.0-1mol.DevPak
Отправлен: 02.07.2007, 22:46
Вопрос задал: Савин Валерий (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Maxim V.G.
Здравствуйте, Савин Валерий Николаевич!
По первой части ничего не могу ответить, так как не пользовался названной IDE и не знаю какой компилятор используется (попробуй сменить IDE) :)).
По второму вопросу скажу так:
1) Такой вопрос уже задавался в этой рассылки и его можно найти через поиск!
2) Вкратце расскажу про входные параметры:
Для входных параметров в программу используются переменные argc и argv
Example:
int main(char argc, char argv[]){
return 0;
}

Первая переменная содержит количество входящих в программу параметров, вторая строку параметров.
Дальше разбираешь строку и делаешь и делаешь всё, что хочется.
Example:

#include <stdio.h>

void main(char argc, char * argv[]){
if (argv[0] == '?')
printf(%s, "Copyright Ivanov Ivan");
return;
}
---------
Жить вредно - от неё умирают
Ответ отправил: Maxim V.G. (статус: 2-ой класс)
Ответ отправлен: 03.07.2007, 14:49

Отвечает: Dark Daskin
Здравствуйте, Савин Валерий Николаевич!
conio.h не входит в стандарт с++, т.к. зависит от ОС, поэтому в каждом компиляторе сделан по-своему и имеет разные возможности. В Windows в этом файле поддерживается только функция char getch() - чтение нажатого символа. Остальные (цвет и положение) досрупны через WinApi (при этом теряется кроссплатформенность программы). А Code::Blocks никогда не видел, так что не знаю, будет ли там работать, всё, что я написал, хотя вроде должно.

Насчёт разбора параметров, правильнее будет разбирать их так:
#include <iostream>
using namespace std;

int main (int argc, char* argv[])
{
//Переменные параметров
bool param1 = false;
bool param_count = false;
int param_count_val = 0;
//Программа распознаёт парамерты вида /param1 /count 50 в любом порядке
for (int i = 0; i < argc; i++)
{
if (strcmp(argv[i], "/param1") == 0)
param1 = true;
if (strcmp(argv[i], "/count") == 0)
param_count = true;
if (param_count && argc > i)
param_count_val = atoi(argv[i + 1]);
}
if (param1)
cout << "param1 used" << endl;
if (param_count)
cout << "count is " << param_count_val << endl;
return 0;
}

Насчёт нажатия кнопок:
#include <iostream>
#include <conio.h>
using namespace std;

int main (int argc, char* argv[])
{
char c = 0;
//Цикл пока не нажата клавиша выхода
while (c != 'Q')
{
//Очистка экрана
system("cls");
//Меню
cout << "MenuItem1 - 1" << endl;
cout << "MenuItem2 - 2" << endl;
cout << "Exit - Q" << endl;
//Чтение клавиши
c = toupper(getch());
//Действия
switch (c)
{
case '1':
cout << "MenuItem1 selected" << endl;
getch();
break;
case '2':
cout << "MenuItem2 selected" << endl;
getch();
break;
}
}
return 0;
}

Насчёт conio смотрите в приложении, я там писал класс для работы с консолью, наверное разберётесь.
#include "Console.h"
using namespace std;

int main()
{
//Установка заголовка окна
console.SetTitle("Работа с консолью");
//Ввод имени файла
console.Write("Введите имя файла: ");
string filename = console.ReadLine();
//Установка цвета
console.SetColor(clRed);
console.WriteLine("Вы выбрали файл " + filename);
//Задержка
console.Pause();
return 0;
}

Приложение:

---------
Драконы наступают!

Ответ отправил: Dark Daskin (статус: 1-ый класс)
Ответ отправлен: 04.07.2007, 09:47


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное