Выбрать главу

См. lock_file() для изучения дальнейших комментариев и примера.

См. также:

lock_file

unregister_block

Синтаксис:

include machine.e (or safe.e)

unregister_block(a)

Описание:

Удаляет блок памяти из списка безопасных блоков, поддерживаемого safe.e (отладочной версией machine.e). Участок памяти, занятый этим блоком, начинается по адресу a.

Комментарии:

Данная процедура предназначена для использования только в отладочных целях. Применяйте её для вычеркивания блоков памяти, которые вы ранее внесли в список с помощью процедуры register_block(). Вычеркивая (удаляя) блок, вы исключаете его из списка безопасных блоков, поддерживаемого safe.e. Это предохраняет вашу программу от любых последующих операций чтения-записи по адресам внутри блока.

См. register_block() для уяснения деталей и изучения примера.

См. также:

register_block, safe.e

upper

Синтаксис:

include wildcard.e

x2 = upper(x1)

Описание:

Преобразует атом или ряд символов на латинском алфавите к верхнему регистру.

Пример:

s = upper("Euphoria")

-- s равно "EUPHORIA"

a = upper('g')

-- a равно 'G'

s = upper({"Euphoria", "Programming"})

-- s равно {"EUPHORIA", "PROGRAMMING"}

См. также:

lower

use_vesa

Платформа:

DOS32

Синтаксис:

include machine.e

use_vesa(i)

Описание:

use_vesa(1) переведет Euphoria в режим подчинения рекомендациям графического стандарта VESA. Это может улучшить работу программ Euphoria в режимах SVGA графики с некоторыми видеоплатами. use_vesa(0) восстановит оригинальный метод, применяемый Euphoria при работе с видеоплатами.

Комментарии:

Большинство пользователей Euphoria может не обращать на эту процедуру внимания. Однако, если возникли трудности при переходе в графические режимы SVGA, вы можете попытаться выполнить use_vesa(1) в начале вашей программы перед любыми вызовами функции graphics_mode().

Аргументы в use_vesa(), отличающиеся от 0 или 1, не должны использоваться.

Пример:

use_vesa(1)

fail = graphics_mode(261)

См. также:

graphics_mode

value

Синтаксис:

include get.e

s = value(st)

Описание:

Читает строковое представление объекта Euphoria и рассчитывает его величину. Выдаёт 2-х элементный ряд вида {error_status, величина}, где элемент error_status может быть одним из:

GET_SUCCESS -- найдено законное представление объекта

GET_EOF -- конец строки обнаружен слишком быстро

GET_FAIL -- неправильный синтаксис

Комментарии:

Данная функция работает точно так же как и get(), но чтение производится из строки, которую вы подаёте, а не из файла и не с устройства.

После прочтения одного законного представления объекта Euphoria value() приостанавливает дальнейшее чтение и игнорирует любые добавочные символы в строке. Например, "36" и "36P" - оба случая дадут вам {GET_SUCCESS, 36}.

Пример 1:

s = value("12345"}

-- s равно {GET_SUCCESS, 12345}

Пример 2:

s = value("{0, 1, -99.9}")

-- s равно {GET_SUCCESS, {0, 1, -99.9}}

Пример 3:

s = value("+++")

-- s равно {GET_FAIL, 0}

См. также:

get, sprintf, print

video_config

Синтаксис:

include graphics.e

s = video_config()

Описание:

Выдаёт ряд величин, описывающих конфигурацию вашей видеоподсистемы:

{цветной монитор?, графический режим, число строк текста, число колонок текста, число пикселов по горизонтали, число пикселов по вертикали, число цветов, число страниц}.

В библиотечном файле graphics.e определены следующие константы:

global constant

VC_COLOR = 1,

VC_MODE = 2,

VC_LINES = 3,

VC_COLUMNS = 4,

VC_XPIXELS = 5,

VC_YPIXELS = 6,

VC_NCOLORS = 7,

VC_PAGES = 8

Комментарии:

Данная функция помогает вам так выбрать видеопараметры при исполнении вашей программы, что она будет работать правильно во многих графических режимах (с различными видеоплатами на различных машинах).

На компьютерах можно встретить два типа графических режимов. Первый тип, текстовый режим, позволяет выводить на экран только лишь текст. Второй тип, пиксельно-графический режим, позволяет выводить пикселы, или точки, в различных цветах, а одновременно и текст. Вы можете сказать, что система находится в текстовом режиме, если элементы текущей конфигурации VC_XPIXELS и VC_YPIXELS равны 0. Такие библиотечные процедуры как polygon(), draw_line() и ellipse() работают только в пиксельно-графическом режиме.

Пример:

vc = video_config() -- в режиме 3 с 25-ю строками текста:

-- vc равно {1, 3, 25, 80, 0, 0, 32, 8}

См. также:

graphics_mode

wait_key

Синтаксис:

include get.e

i = wait_key()

Описание:

Выдаёт код клавиши, нажатой пользователем на клавиатуре. Код выдаётся в момент нажатия клавиши.

Комментарии:

Вы можете получить тот же самый результат с get_key(), если напишете:

while 1 do

k = get_key()

if k != -1 then

exit

end if

end while

Однако на многозадачных системах, подобных Windows или Linux/FreeBSD, такое "занятое ожидание" с get_key() будет снижать производительность системы. Функция же wait_key() позволяет операционной системе выполнять другую полезную работу, пока ваша программа ожидает нажатия на клавишу.

Вы можете использовать также getc(0), так как файлу номер 0 соответствует ввод с клавиатуры, но при этом не будут вырабатываться специальные коды от функциональных клавиш, клавиш со стрелками, коды клавиш на русском регистре и т.п. Данное ограничение для getc(0) действует только в официальных интерпретаторах RDS при вводе с клавиатуры, в двуязычных интерпретаторах оно снято.

См. также:

get_key, getc

walk_dir

Синтаксис:

include file.e

i1 = walk_dir(st, i2, i3)

Описание:

Данная подпрограмма "пройдётся" по каталогу, имя которого задано в ряде st, и будет в этом каталоге обрабатывать файлы. i2 является номером той функции, которую вы хотите применить для обработки файлов каталога. walk_dir() может вызывать вашу функцию обработки файлов для каждого файла и подкаталога в st. Если i3 не равно 0 (TRUE), подкаталоги в st будут пройдены рекурсивно.

Функция, которую вы применяете для обработки файлов, должна воспринимать имена путей и входы dir() для каждого файла и подкаталога. Она должна также выдавать 0 для продолжения прохождения после успешного окончания работы с файлом или не-ноль, чтобы остановить выполнение walk_dir().

Комментарии:

Данный механизм позволяет вам написать простую функцию для требуемой обработки каждого из файлов, в то время как walk_dir() обеспечит процесс автоматической навигации по файлам и подкаталогам.

По умолчанию файлы и каталоги будут пройдены в алфавитном порядке. Если вам необходим другой порядок, установите соответствующим образом глобальную переменную my_dir для номера своей собственной модифицированной функции dir(), которая должна сортировать входы каталога в необходимом вам порядке. Просмотрите для уяснения деталей текст исходной функции dir() в файле file.e.