Книга: Разработка приложений в среде Linux. Второе издание

24.2.7. Запись на экран

24.2.7. Запись на экран

Записать строки на экран под управлением S-Lang можно несколькими различными способами, суть которых одинакова. Далее приводится полный список функций, предназначенных для этой цели.

void SLsmg_write_char(char ch);
void SLsmg_write_string(char * str);
void SLsmg_write_nchars(char * chars, int length);
void SLsmg_write_nstring(char * str, int length);
void SLsmg_printf(char * format, ...);
void SLsmg_vprintf(char * format, va_list args);
void SLsmg_write_wrapped_string(char * str, int row, int column, int height,
int width, int fill);

Каждая из этих функций, за исключением SLsmg_write_wrapped_string(), записывает требуемую строку в буфер экрана[170] в текущую позицию курсора, используя текущий цвет и набор символов. Однако все они по-разному определяют, какую строку необходимо записать. После того как информация будет записана, курсор переместится в конец выделенной для этого области, как и на обычном терминале. Любая строка, выходящая за пределы правого края экрана, усекается, а не переносится на другую строку. Хотя этот способ отличается от обычного вывода на терминал, он подходит для большинства полноэкранных приложений, в которых текст, переводимый на новую строку, искажает содержимое экрана.

SLsmg_write_char() Среди всех функций вывода данных на экран это самая простая функция. Она записывает передаваемый символ в текущую позицию курсора и перемещает курсор.
SLsmg_write_string() Выводит на экран передаваемую ей строку.
SLsmg_write_nchars() Выводит на экран символы length, на которые указывает chars. Символ конца строки NULL игнорируется — если он будет найден, выводится комбинация '' и подпрограмма продолжает работу после окончания строки.
SLsmg_write_nstring() Выводит на экран не более length символов из str. Если str содержит менее length символов, оставшееся пространство заполняется пробелами.
SLsmg_printf() Как можно судить из имени функции, она работает подобно стандартной функции printf(), форматируя первый аргумент, а остальные аргументы используются в качестве параметров для форматирования. После этого на экран выводится сформатированная строка.
SLsmg_vprintf() Подобно функции vfprintf() из библиотеки С. Эта функция ожидает получение аргумента va_arg, который она использует для форматирования первого параметра. Затем на экран выводится сформатированная строка.
SLsmg_write_wrapped_string() Хотя S-Lang отсекает строки, а не переносит их на следующие строки, она предлагает простую функцию для записи строк, перенесенных в произвольную прямоугольную область экрана. Функция SLsmg_write_wrapped_string() записывает строку str в прямоугольную область, которая начинается в row и column и имеет размеры height и width. Несмотря на то что эта подпрограмма осуществляет перенос границ слов, последовательность n указывает на необходимость перехода на следующую строку. Если последний параметр fill имеет ненулевое значение, то каждая строка будет заполнена по всей ширине прямоугольной области, а при необходимости будут добавляться пробелы.

Оглавление книги


Генерация: 0.773. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз