| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Поочередное выделение цветом символов в тексте |
| Автор: ratgunter 17.11.2008, 12:24 |
| нужно в с++ дописать прогу так, чтобы символы(отличные от букв и пробелов) в выделенном предложении выделялись не сразу все, а поочередно. Вот само задание (1. С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT. Написать программу, которая: 1) выводит текст на экран дисплея; 2) определяет в каждом предложении текста количество символов, отличных от букв и пробелов; 3) по нажатию произвольной клавиши поочередно выделяет каждое предложение текста, а в выделенном предложении – поочередно все символы, отличные от букв и пробелов.) #include <iostream.h> #include <fstream.h> #include <conio.h> #include <constrea.h> void main() { clrscr (); constream h; char ch=0; int k=1; int a=0; int mas[7]; int count=0; ifstream fin("rat.dat"); if(!fin) { cout<<"File not found"; getch(); } else { while (fin.get(ch)) { textcolor(15); h << ch; if (ch!=' ' && (ch<'a'||ch>'z')&&(ch<'A'||ch>'Z')&&ch!='\n') { count++; if ((ch=='.')||(ch=='!')||(ch=='?')) { textcolor(14); h <<"("<<"v"<<k<<"-"<<count<<")"; k++; ch++; for(a=0;a<7;a++) mas[a]=count; count=0; } } } for (int i=0;i<k;i++) { for (int s=0; s<mas[7]; s++) { fin.clear(); fin.seekg(0); getch(); clrscr(); int j=0; while (fin.get(ch)) { for(a=0;a<7;a++) { if (j==i) textcolor (14); else textcolor(15); if(j==i&&mas[a]==s) { textcolor (13); } h<<ch; s++; } if ((ch=='.')||(ch=='!')||(ch=='?')) j++; } } } } fin.close(); getch(); } |
| Автор: DareDevil225 17.11.2008, 12:31 |
| Используйте тег КОД () пожалуйста, а то мало того что такой бешеный код, так еще и нечитабельный абсолютно |
| Автор: ratgunter 17.11.2008, 12:36 | ||
| Первый раз на сайте, как это сделать? Добавлено через 7 минут и 35 секунд
|
| Автор: DareDevil225 17.11.2008, 13:11 | ||
Насколько я понял с ходу - попробуйте так
|
| Автор: ratgunter 17.11.2008, 15:01 | ||
| блин, не тот вариант проги дал.Помогите пожалуйста, надо 22.11.08. сдать вот какую прогу надо дописать:
|
| Автор: DareDevil225 17.11.2008, 15:04 |
| исправления те же самые |
| Автор: ratgunter 17.11.2008, 16:56 |
| Нет, сдесь предложения выделяются как надо, а символы в предложении сразу все выделяются.Прогу которую вы мне дали ругалась на [color] или вроде того и ниче не делала, просто выводила текст на экран.помогите доделать! |
| Автор: DareDevil225 17.11.2008, 17:37 | ||||
[color] - это тег этого сайта, хотел цветом выделить что изменил - почему-то не сработало Добавлено через 2 минуты и 13 секунд тогда так:
|
| Автор: ratgunter 17.11.2008, 18:07 |
| не так работает.теперь текст полностью посимвольно выводится. надо чтобы при нажатии любой клавиши выделилось цветом первое предложение, затем при нажатии любой клавиши в этом предложении поочередно выделялись например все цифры и запятые.после того как все цифры и запятые выдилились, при нажатии любой клавиши должно выделиться следующее предложение, и в нем опять поочередно символы и т.д. посмотрите еще раз пожалуйста! |
| Автор: DareDevil225 18.11.2008, 14:20 | ||
|
| Автор: ratgunter 18.11.2008, 20:14 |
| Ну не правильно работает, у вас символы синим цветом сразу все выделяются, а надо чтоб поочередно! |
| Автор: DareDevil225 19.11.2008, 10:24 | ||
Попробуйте так)))
|
| Автор: ratgunter 19.11.2008, 19:05 |
| Да сам уже 2 месяца мучаюсь! |
| Автор: ratgunter 20.11.2008, 14:25 |
| У меня сишник ругается на bool и выдает 5 ошибок(все связанны с bool). Самое интересное,что у меня в help'е ничего нет про bool.Что можно сделать? |
| Автор: DareDevil225 20.11.2008, 18:10 | ||||
Каие ошибки хоть пишет? не верю что не понимает тип bool Добавлено через 1 минуту и 38 секунд Сделайте int тогда)))
|
| Автор: ratgunter 21.11.2008, 21:04 |
| Вы не поняли: вначале выделяется предложение, затем оно остается выделенным и в нем уже другим цветом поочереди выделяются символы.А текст никуда не исчезает,он должен оставаться! |
| Автор: ratgunter 5.12.2008, 23:19 |
| Ну помогите!!! |
| Автор: DareDevil225 10.12.2008, 11:32 |
| нужно -в цикле while убрать установку необходимых цветов для символов, чтобы не выделялись -затем переместить указатель в файле на начало -после вашего цикла while вставить еще один, в котором уже определять необходимые цвета для символов и функцией gotoxy(int x, int y) перемещаться по уже выведенному тексту и выводить цветной символ, после чего делать ожидание нажатия клавиши(getch()) и так далее. |
| Автор: ratgunter 11.12.2008, 15:47 |
| А можете пожалуйста дописать программу, а то реально с сентября мучаюсь. |
| Автор: DareDevil225 12.12.2008, 09:21 |
| Я же описал примерный алгоритм решения, вам никак самому подумать не хочется? На форуме вам могут подсказать что либо, помочь в решении проблемы, подкинуть идею - но писать за вас программы никто не будет (не обижайтесь, но это так), если только задача интересная и есть время чтобы с ней повозиться. По вопросам написания программ обращайтесь туда, где делают за денюжку. Задавайте конкретные вопросы что именно у вас не получается, тогда получите ответы на них. Добавлено через 2 минуты и 55 секунд Кстати, если Вы не заметили, то никто на вашу задачу даже не откликнулся, кроме меня, потому что о просьбах написать что либо никто не отвечает. |