Вопрос № 71279: Здравствуйте, уважаемые эксперты.
Пытаюсь научится программировать в С++Builder 6. Подскажите, пожалуйста, как в TMemo задать разные строки разными шрифтами с разным цветом.
С уважением,
Владимир...Вопрос № 71315: Уважаемые эксперты. Помогите, пожалуйста, решить вот такое задание:
Создать абстрактный класс, имеющий не более 2-х свойств и методов (должна быть виртуальная функция), породить от него 2-х потомков, имеющих не более 2-х свойств и методов. Проилл...Вопрос № 71316: У меня в файле записаны пути к файлам типа:
D:video1matrix.avi
D:music
irvana
ape me.mp3 и т.д.
Мне нужно считать их и инициализировать типа f=fopen(str,"r"); str[]="
D:video1matrix.avi"
Но при считыва...Вопрос № 71324: Здравствуйте, эксперты.
Есть кусок кода (см. приложение), набор телефонного номера модемом. Все работает нормально. То есть, когда жму на кнопку On модем набирает номер, а на кнопку Off – отключается. Но вот в чем проблема – если после нажатия на...Вопрос № 71333: Как мне вывести слово целиком в котором я нашел вхождение подстроки функцией strstr();
Например я ввожу строку Internationsl Groups System, а строка для поиска roup. Как мне вывести слово Groups?.
Можна любые другие методы....Вопрос № 71343: Как узнать входит ли подстрока str2 в строку str1, и вывести слово в котором она находится? Слова розделены пробелами....
Вопрос № 71.279
Здравствуйте, уважаемые эксперты.
Пытаюсь научится программировать в С++Builder 6. Подскажите, пожалуйста, как в TMemo задать разные строки разными шрифтами с разным цветом.
С уважением,
Владимир
Отправлен: 17.01.2007, 01:20
Вопрос задал: Volodymyr (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Jadd
Здравствуйте, Volodymyr!
В TMemo никак. В TRichEdit это можно сделать. Или придется писать свою компоненту.
Успехов.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал) Адрес: Санкт-Петербург WWW:http://www.sport-diary.ru ICQ: 28260749 ---- Ответ отправлен: 17.01.2007, 01:23 Оценка за ответ: 3 Комментарий оценки: В TRichEdit я такой возможности не нашел. Я поставил бы бал выше за подсказку в каких Properties искать.
Отвечает: Lemeshev Konstantin
Здравствуйте, Volodymyr!
Например можно сделать так. Получим в компоненте RichEdit1 строки разного цвета.
Ответ отправил: Lemeshev Konstantin (статус: 3-ий класс)
Ответ отправлен: 17.01.2007, 06:10 Оценка за ответ: 5 Комментарий оценки: Спасибо за полный ответ, помогло.
Вопрос № 71.315
Уважаемые эксперты. Помогите, пожалуйста, решить вот такое задание:
Создать абстрактный класс, имеющий не более 2-х свойств и методов (должна быть виртуальная функция), породить от него 2-х потомков, имеющих не более 2-х свойств и методов. Проиллюстрировать работу этих классов и вызов виртуальной функции
Комментарий: одна фигура порождает другую
Отвечает: Терсков Сергей
Здравствуйте, Alisia02!
Вот типичный пример вызова виртуальной функции абстрактного класса на примере классов shape(абстрактный класс фигуры), и конкретных фигур circle и rect.
Приложение:
Ответ отправил: Терсков Сергей (статус: 5-ый класс)
Ответ отправлен: 17.01.2007, 11:09
Вопрос № 71.316
У меня в файле записаны пути к файлам типа:
D:video1matrix.avi
D:music
irvana
ape me.mp3 и т.д.
Мне нужно считать их и инициализировать типа f=fopen(str,"r"); str[]="
D:video1matrix.avi"
Но при считывании получается "D:video1matrix.avi|"
Как убрать эту палку в конце?
С файла считываю так:
fgets(str,255,r);
in=fopen(str,"r");
Может есть другой вариант?
Отвечает: Physicist
Здравствуйте, Костенко Игорь Викторович!
Просто вместе с названием файла считывается символ конца строки. Убрать его можно по-разному, например так:
Приложение:
Ответ отправил: Physicist (статус: Практикант)
Ответ отправлен: 17.01.2007, 11:00 Оценка за ответ: 4
Отвечает: Lemeshev Konstantin
Здравствуйте, Костенко Игорь Викторович!
Краткая выдержка из хелпа по функции fgets (см. приложения) говорит о том, что она считывает строку вместе с сиволом перевода строки (который как раз и показываеться как "палка"). Следовательно нужно проверить перенесся ли этот символ из файла, и если да то удалить (на сколько я знаю, если строка последняя в файле, то символ перевода строки не появляеться) отфильтровать можно так
str // - переменная с именем файла, считаная из файла :-)
if(str[strlen(str)-2]==13)
str[strlen(str)-2]=0;
Сразу оговорюсь, что писано на коленке. :-(
Приложение:
Ответ отправил: Lemeshev Konstantin (статус: 3-ий класс)
Ответ отправлен: 17.01.2007, 11:07 Оценка за ответ: 5
Отвечает: Tek
Здравствуйте, Костенко Игорь Викторович!
Дело в том что в строку считывает символ с кодом 10 - EOL - конец строки - это и есть эта палка вероятно.
Лучше всего будет сделать после считывания так:
str[strlen(str)-2] = 0; таким образом вы завершите строку нулевым символом как и требует стандарт С. Далее все должно быть нормально.
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 7-ой класс)
Ответ отправлен: 17.01.2007, 11:13 Оценка за ответ: 5
Отвечает: dentist
Здравствуйте, Костенко Игорь Викторович!
имхо оптимально и без нюансов:
strrchr(str, '
')[0] = 0;
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 8-ой класс)
Ответ отправлен: 17.01.2007, 11:50
Отвечает: Bob Johnson
Здравствуйте, Костенко Игорь Викторович!
2 dentist - а если strrchr не найдет символа
, тогда вернет null и будет application error.
а поскольку файлы бывают с разными разделителями строк (есть 10, есть 13 + 10), я бы сделал так:
int l = strlen (str);
while (--l >= 0 && (str [l] == 10 || str [l] == 13))
str [l] = 0;
Ответ отправил: Bob Johnson (статус: Академик) Россия, Калуга WWW:Программирование ---- Ответ отправлен: 17.01.2007, 11:59 Оценка за ответ: 4
Вопрос № 71.324
Здравствуйте, эксперты.
Есть кусок кода (см. приложение), набор телефонного номера модемом. Все работает нормально. То есть, когда жму на кнопку On модем набирает номер, а на кнопку Off – отключается. Но вот в чем проблема – если после нажатия на кнопку Off ввести другой номер и снова нажать на кнопку набора номера, происходит ошибка. После перезапуска все опять работает. В чем там дело и как это можно исправить?
Спасибо.
Отвечает: Tek
Здравствуйте, Кохан Владимир Иванович!
В методе OffClick следует в вашем случае после CloseHandle(H); ставить H = NULL;
Так как в OnClick вы проверяете if (!H) и создаете подключение к порту а десккриптор H после первого соединения - уде не NULL - и подключение заново не создается.
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 7-ой класс)
Ответ отправлен: 17.01.2007, 11:52 Оценка за ответ: 5 Комментарий оценки: Большое спасибо, все работает отлично!
Вопрос № 71.333
Как мне вывести слово целиком в котором я нашел вхождение подстроки функцией strstr();
Например я ввожу строку Internationsl Groups System, а строка для поиска roup. Как мне вывести слово Groups?.
Можна любые другие методы.
Отвечает: Lemeshev Konstantin
Здравствуйте, Костенко Игорь Викторович!
Для реализации использовал ваш пример "Например я ввожу строку Internationsl Groups System, а строка для поиска roup."
В переменно t будет содержаться слово "Groups".
Замечания:
1. Что бы упростить код не использовал динамическую память (char t[100];)
2. Предполагаеться что слова разделены только пробелами, думаю понятно чем нужно дополнить код, чтобы использовать другие разделители (дополнить услови в while)
Приложение:
Ответ отправил: Lemeshev Konstantin (статус: 3-ий класс)
Ответ отправлен: 17.01.2007, 13:20
Отвечает: Santana
Здравствуйте, Костенко Игорь Викторович!
предлагаю другой вариант, рубим по пробелам и ищем в каждом слове входение
char input[] = "Internationsl Groups System";
char find[] = "roup";
char *p;
p = strtok(input, " ");
while (p)
{
if (strstr(p, find))
{
// то что надо
};
p = strtok(NULL, " ");
};
ЗЫ это гипотетически. те на практике не проверял
Ответ отправил: Santana (статус: 9-ый класс)
Ответ отправлен: 17.01.2007, 13:36 Оценка за ответ: 5 Комментарий оценки: Спасибо, на практике как раз то что нужно.
Отвечает: dentist
Здравствуйте, Костенко Игорь Викторович!
удобней сначала разбить строку на "слова" и уже среди них искать.
Не забываем, что пробел это разделитель который не должен встречаться в искомой строке!
вот набросал на скорую руку: <<см. приложение>>
Приложение:
--------- "Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 8-ой класс)
Ответ отправлен: 17.01.2007, 15:00 Оценка за ответ: 4
Отвечает: kool
Здравствуйте, Костенко Игорь Викторович!
Так вот и ищи после нахождения этого вхождения первый пробел справа
и слева от него (вхождения). Это и будет начало и конец твоего слова.
Для обратного поиска символа используй ф-цию strrchr для прямого strchr.
Удачи!
Ответ отправил: kool (статус: 5-ый класс)
Ответ отправлен: 17.01.2007, 23:02
Вопрос № 71.343
Как узнать входит ли подстрока str2 в строку str1, и вывести слово в котором она находится? Слова розделены пробелами.
Отвечает: Lemeshev Konstantin
Здравствуйте, Костенко Игорь Викторович!
Аналогичная проблема в вопросе 71333.
Ответ отправил: Lemeshev Konstantin (статус: 3-ий класс)
Ответ отправлен: 17.01.2007, 13:58
Отвечает: kool
Здравствуйте, Костенко Игорь Викторович!
Так вот и ищи после нахождения этого вхождения первый пробел справа
и слева от него (вхождения). Это и будет начало и конец твоего слова.
Для обратного поиска символа используй ф-цию strrchr для прямого strchr.
Удачи!
Ответ отправил: kool (статус: 5-ый класс)
Ответ отправлен: 17.01.2007, 23:02