Сообщение от
Sayman
я поясню, когда надо вывести чисто текст, длина которого от одной строки к другой меняется, да ещё эскейп последовательности, то почему то мне в голову приходит что вариант вывода построчно отпадает. т.е. если вести речи о драйвере, то вапще отпадает...
Легко + более рационально.
Сначала "печатаем" в линейный буфер, по коду CR перекидываем буфер на экран.
общий алгоритм такой:
есть переменные х,у,с (где с-цвет)
есть внутренняя переменная ф (флаг текущей операции)
есть процедура типа рст№10
есть буфер на 256 байт (8х32)
изначально переменные = 0
на вход процедуры последовательно начинаем пихать коды символов и управляющие, где, например: 13 - вывести буфер на экран, 14 - установить цвет (после этого кода идет код цвета), 15 - установить координаты (следом два байта координат).
Код:
Процедура Печать(код)
Если ф = 0 Тогда
Если код = 13 Тогда
ВывестиБуферНаЭкран()
ИначеЕсли код = 14 Тогда
ф = 1
ИначеЕсли код = 15 Тогда
ф = 2
Иначе
ПереписатьОбразСимволаВБуфер(код)
КонецЕсли
ИначеЕсли ф = 1 Тогда
с = код
ф = 0
ИначеЕсли ф = 2 Тогда
х = код
ф = 3
ИначеЕсли ф = 3 Тогда
у = код
ф = 0
Иначе
АбнормалПрограммТерминатион() // :-D
КонецЕсли
Возврат
КонецПроцедуры
надеюсь понятно выразил свои мысли