Вопрос № 20362: Уважаемые эксперты!
У меня такой вопрос - чем изначально заполнен видеобуфер? по какому признаку можно определить символ в видеобуфере? в каком редакторе писать программу, чтобы русский текст не был аброй-кадаброй в уже скомпилированной программе...
Вопрос № 20362
Уважаемые эксперты!
У меня такой вопрос - чем изначально заполнен видеобуфер? по какому признаку можно определить символ в видеобуфере? в каком редакторе писать программу, чтобы русский текст не был аброй-кадаброй в уже скомпилированной программе?
Отправлен: 03.05.2005, 11:16
Вопрос задал: edson (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Ayl
Здравствуйте, edson! Первоначально - это когда? После установки режима? В текстовых - пробелами с аттрибутом фона (обычно 0fh, т.е. белым по черному). Фон можно сменить с помощью функций 6 и 7 прерывания 10h. Либо перепрограммированием палитры. В графическом - точками с цветом фона (обычно 0). Про признак символа - не понял, что ты хочешь. В текстовых режимах код символа записывается в видеобуфер по четным адресам. В графических режимах понятия "символ" не существует, есть набор точек.
Можешь попробовать проанализировать точки и сопоставить их какому-либо символу. Но это утопическая задача. Хороший анализатор символов пока еще никто не создал, хотя для стандартных шрифтов есть удовлетворительные результаты. Насчет редактора. Зависит от кодировки, в которой твоя программа должна выполняться. Если ты пишешь прогу под ДОС, то будь добр набирать ее в альтернативной кодировке (codepage 866). Если же под винды - тогда в Win1251. Для первого случая испо
льзуй либо редакторы из Norton Commander'а, DOS Navigator'а, FAR'а или Multi-Edit. В двух последних следи за установками редактора, чтобы кодировка была DOS. Для виндов - блокнот, FAR и т.п.
После уточнения вопроса автором дополняю ответ (см. таблицу в Приложении). Уточнение вопроса: Про признак символа я некоректно выразился.... Имелось ввиду в каких пределах буквы латинского алфавита и кириллицы находятся...
Приложение:
Ответ отправил: Ayl (статус: Профессор)
Отправлен: 03.05.2005, 17:24 Оценка за ответ: 5 Комментарий оценки: Спасибо!!! Отличный ответ!!! Про признак символа я некоректно выразился.... Имелось ввиду в каких пределах буквы латинского алфавита и кириллицы находятся...
Отвечает: Евгений Иванов
Здравствуйте, edson!
видеобуфер необходимо очищать. там совершенно неопределённые данные.
в каком видеобуфере необходим символ? текстовый?
тогда просто бери каждый чётный байт - это будет ASCII-символ.
FAR editor.
удачи!
Ответ отправил: Евгений Иванов (статус: Профессор)
Отправлен: 06.05.2005, 17:43