Форум программистов, компьютерный форум CyberForum.ru

Текстовый режим и мигающий текст - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
02.11.2013, 14:44     Текстовый режим и мигающий текст #1
В коем то веке понадобилось продемонстрировать работу в текстовом режиме для лабораторной в университете, кто изучал с++ ещё в 90х небось в курсе как это делается, подскажите пожалуйста.
Заставить мигать текст пытаюсь через борланд с++ установленный в DOS.
Вызовы textMode из graphics.h визуально ничего не меняют
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   textmode(BW40);
   cprintf("ABC");
   getch();
   textmode(C40);
   cprintf("ABC");
   getch();
   textmode(BW80);
   cprintf("ABC");
   getch();
   textmode(C80);
   cprintf("ABC");
   getch();
   textmode(MONO);
   cprintf("ABC");
   getch();
Попытки заставить мигать текст через те же борландовские функции тоже ничего не меняют визуально
C++
1
2
textColor(WHITE + BLINK);
textAttr(128+10);
Как же это всё правильно сделать-то ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
02.11.2013, 14:55     Текстовый режим и мигающий текст #2
Gepar, не оно ? Может поможет
Мерцающая надпись (графика)
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
02.11.2013, 15:00     Текстовый режим и мигающий текст #3
У борланда помнится было чтото про blinck в <conio.h>
Давно было...
Там еще окна вывода можно было задавать...
И спикером бибикать..
Ностальгия... (*утирает слезу*)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
02.11.2013, 15:22     Текстовый режим и мигающий текст #4
Вывод цветных символов
Цветной текст в командной строке
gazlan
2857 / 1805 / 271
Регистрация: 27.08.2010
Сообщений: 4,886
Записей в блоге: 1
02.11.2013, 15:48     Текстовый режим и мигающий текст #5
Это зависит от установки BLINK-бита. По умолчанию, вместо мерцающего текста, выводится утолщенный.

VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)

Re: Подсветить идентификаторы с файла
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
02.11.2013, 15:57  [ТС]     Текстовый режим и мигающий текст #6
Цитата Сообщение от gazlan Посмотреть сообщение
Это зависит от установки BLINK-бита.
Да это я понимаю, другое дело как посредством функций борланда это сделать То что я пробовал никакого эффекта не давало.
Там ещё задание сделать бегущую строку, это видимо подразумевают чистить экран и показывать в другой точке текст посредством борландовских функций graphics.h ... или он не умеет писать текст в указанную позицию не в vga режиме?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
02.11.2013, 16:05     Текстовый режим и мигающий текст #7
Цитата Сообщение от Gepar Посмотреть сообщение
или он не умеет писать текст в указанную позицию не в vga режиме?
Ну на счет борландовских функций не знаю, но
Есть ли какие то статьи про графику в DOS?
Задача с выводом в командную строку
Вывести фигуру звездочками
gng
605 / 451 / 122
Регистрация: 08.09.2013
Сообщений: 1,152
02.11.2013, 16:16     Текстовый режим и мигающий текст #8
Esc последовательность на терминал: Esc [ 5 m
Или в Си: printf ("\E5m");
Только не все виртуальные терминалы поддерживают мерцание, в отличие от цветов и подчеркивания.
Досовский терминал, насколько я помню, поддерживал.
Борландовские терминальные функции делают то же самое, поскольку другого способа общения с терминалами не существует. Можно только минуя терминал писать в видеопамять, но программа сразу утратит универсальность.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
02.11.2013, 16:27  [ТС]     Текстовый режим и мигающий текст #9
Цитата Сообщение от gng Посмотреть сообщение
Можно только минуя терминал писать в видеопамять, но программа сразу утратит универсальность.
А как это сделать?
О универсальности и речи быть не может, мне не нужен опыт написания универсальных программ в текстовом режиме, думаю я обойдусь без этого опыта.
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
02.11.2013, 16:31     Текстовый режим и мигающий текст #10
Цитата Сообщение от Gepar Посмотреть сообщение
А как это сделать?
О универсальности и речи быть не может, мне не нужен опыт написания универсальных программ в текстовом режиме, думаю я обойдусь без этого опыта.
Поищите Фаронов Turbo Pascal часть 2
Я помнится без особого труда на Turbo C примеры от туда переписывал
gng
605 / 451 / 122
Регистрация: 08.09.2013
Сообщений: 1,152
02.11.2013, 20:34     Текстовый режим и мигающий текст #11
Цитата Сообщение от Gepar Посмотреть сообщение
А как это сделать?
О универсальности и речи быть не может, мне не нужен опыт написания универсальных программ в текстовом режиме, думаю я обойдусь без этого опыта.
Если программа запущена в чистом досе, то вышеприведенный пример должен сработать.
C
1
printf ("\E1;4;5;34;mHello...");
выводит жирный подчеркнутый текст голубого цвета, но не мигающий
Перевожу свой виртуальный терминал в текстовый режим видеоадаптера 80x25
и мигание появилось )))

Писать в видеопамять в чистом досе тоже просто.
Текстовая страница находится по адресу B800:0000 (реальный режим процессора).
Каждый символ занимает 2 байта - код символа и аттрибуты. Счет с левого верхнего угла.

Добавлено через 2 часа 54 минуты
Исправление (забыл поставить '[' в последовательности)
C
1
printf ("\E[1;4;5;34;mHello...");
Добавлено через 16 секунд
Исправление (забыл поставить '[' в последовательности)
C
1
printf ("\E[1;4;5;34;mHello...");
Добавлено через 48 минут
И еще раз извиняюсь. Понадеялся на память, вместо того, чтобы скопипастить
C
1
printf ("\E[1;4;5;34mHello...");
\E начало, m - конец последовательности
1 - жирный шрифт
4 - подчеркивание
5 - мигание
34 - голубой цвет
Мигание работает только в реально текстовом режиме.
gazlan
2857 / 1805 / 271
Регистрация: 27.08.2010
Сообщений: 4,886
Записей в блоге: 1
02.11.2013, 21:24     Текстовый режим и мигающий текст #12
Цитата Сообщение от Gepar Посмотреть сообщение
Да это я понимаю, другое дело как посредством функций борланда это сделать
Видимо, не понимаете. Речь идет не о "функциях Борланда", а о смене видеорежима. Сделать это можно через asm-вставку (проще всего) или псевдопеременные REGS и вызов int86().
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
04.11.2013, 22:43  [ТС]     Текстовый режим и мигающий текст #13
Цитата Сообщение от gazlan Посмотреть сообщение
Сделать это можно через asm-вставку (проще всего)
так а что у того же борланда нет какой-то процедуры с этой asm вставкой?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 22:56     Текстовый режим и мигающий текст
Еще ссылки по теме:

Дан текстовый файл f. Переписать текст в файл g, удалив все группы букв s (s передается параметром) C++
C++ Где должен быть текстовый файл, чтобы программа читала с него текст
Рисовать мигающий курсор на виджете с данной частотой C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
gazlan
2857 / 1805 / 271
Регистрация: 27.08.2010
Сообщений: 4,886
Записей в блоге: 1
04.11.2013, 22:56     Текстовый режим и мигающий текст #14
Есть:
Цитата Сообщение от gazlan Посмотреть сообщение
или псевдопеременные REGS и вызов int86()
Yandex
Объявления
04.11.2013, 22:56     Текстовый режим и мигающий текст
Ответ Создать тему
Опции темы

Текущее время: 00:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru