Комментарии:
Функция get_position() работает в обоих режимах - текстовом и пиксельном. В пиксельных режимах курсор не будет виден, но get_position() будет выдавать строку и колонку, в которых появится следующий символ.
Система координат, в которой отображаются символы, отличается от той, в которой отображаются пикселы. Пикселы отображаются так, что верхний левый находится в точке (x=0,y=0) и первая координата управляет горизонтальным положением, слева направо. Для символов же первая координата управляет вертикальным положением, сверху вниз, а верхний левый находится в позиции 1,1. В пиксельных режимах вы можете одновременно выводить на экран и пикселы, и текст. Функция get_position() выдаёт текущие строку и колонку для выводимого вами текста, а не для пиксела, который вы собираетесь включить. Соответствующая функция для получения текущей позиции пиксела в языке Euphoria отсутствует.
См. также:
position, get_pixel
get_screen_char
Синтаксис:
include image.e
s = get_screen_char(i1, i2)
Описание:
Выдаёт 2-элементный ряд s в форме {код ascii, атрибут}для символа на экране в строке i1, колонке i2. Ряд s состоит из двух атомов. Первый даёт код ASCII для символа. Второй же содержит информацию о цветах символа и фона и, возможно, другие данные, относящиеся к внешнему виду символа на экране.
Комментарии:
С помощью подпрограмм get_screen_char() и put_screen_char() вы можете запоминать и выводить на экран символы с их атрибутами.
Пример:
-- запоминает в ряде s символ и его атрибут из верхнего левого угла экрана
s = get_screen_char(1,1)
-- выводит из ряда s символ с его атрибутом в позицию строка 25, колонка 10
put_screen_char(25, 10, {s})
См. также:
put_screen_char, save_text_image
get_vector
Платформа:
DOS3 2
Синтаксис:
include machine.e
s = get_vector(i)
Описание:
Выдаёт текущий дальний адрес защищенного режима для обработчика прерывания номер i. Ряд s будет иметь 2 элемента: {16-битный сегмент, 32-битное смещение}.
Пример:
s = get_vector(#1C)
-- s будет содержать дальний адрес обработчика
-- прерывания от таймера, например: {59, 808}
Пример программы:
demo\dos32\hardint.e x
См. также:
set_vector, lock_memory
getc
Синтаксис:
i = getc(fn)
Описание:
Считывает и выдаёт следующий символ (байт) из файла или с устройства fn. Коды символов будут иметь величину от 0 до 255. При достижении конца файла выдаётся -1.
Комментарии:
Ввод из файла с использованием функции getc() буферизируется, т.е. getc() не обращается к диску за каждым очередным символом. Напротив, большой блок символов сразу считывается в буфер, но из памяти буфера символы выдаются по одному.
Когда getc() читает с клавиатуры, никакие символы не будут видны, пока пользователь не нажмёт Enter. Заметьте, что набранное пользователем на клавиатуре сочетание control-Z трактуется операционной системой как "конец файла". В этом случае вместо кода символа будет выдана -1.
См. также:
gets, get_key, wait_key, open
getenv
Синтаксис:
x = getenv(s)
Описание:
Выдаёт значение переменной окружения DOS. Если переменная с именем, заданным в строковом ряде s, не определена, выдает -1.
Комментарии:
Так как функция может выдавать или ряд, или атом (-1), переменная, которой присваивается значение функции, должна быть объявлена как объект.
И аргумент, и выдаваемая величина могут быть или не быть чувствительными к регистру букв. Вы должны проверить это на своей системе.
Пример:
e = getenv("EUDIR")
-- e будет равно "C:\EUPHORIA" -- или, возможно, D:, E: и т.д.
См. также:
command_line
gets
Синтаксис:
x = gets(fn)
Описание:
Считывает и выдаёт очередной ряд символов из файла или с устройства fn (одну строку, включая '\n'). Коды символов будут иметь величины от 0 до 255. При достижении конца файла выдаётся атом -1.
Комментарии:
Так как функция выдаёт или ряд, или атом (-1), вы должны объявить как объект переменную, которой будет присвоено значение функции.
После чтения строки текста с клавиатуры вы обычно должны будете вывести символ окончания строки, '\n', т.е. подать команду puts(1, '\n'), прежде чем печатать что-либо другое. Иначе печать не начнётся от левого края экрана, а будет продолжаться вслед за той строкой, которая была введена с клавиатуры. Только при достижении конца последней строки экрана операционная система автоматически произведёт прокрутку экрана и переведёт курсор в начало следующей строки.
Последняя строка файла может не иметь символа перевода строки '\n' в конце.
Заметьте, что когда ваша программа читает с клавиатуры, набранное пользователем на клавиатуре сочетание control-Z трактуется операционной системой как "конец файла". В этом случае вместо кода символа будет выдана -1.
Читать дальше