KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » W Cat - Язык программирования Euphoria. Справочное руководство

W Cat - Язык программирования Euphoria. Справочное руководство

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "W Cat - Язык программирования Euphoria. Справочное руководство". Жанр: Программирование издательство неизвестно, год неизвестен.
Перейти на страницу:

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

Хорошей практикой является игнорирование тех событий, которые вас не интересуют, кроме обычно очень частого события MOVE, чтобы снизить вероятность пропуска события, имеющего большое значение в вашей программе.

Первый вызов mouse_events(), который вы сделаете, включит курсор мыши или подсвеченный символ.

Пример:


mouse_events(LEFT_DOWN + LEFT_UP + RIGHT_DOWN)

-- ограничит данные get_mouse() информацией о нажатии

-- и отпускании левой кнопки и о нажатии правой кнопки.

-- Все остальные события будут игнорироваться.


См. также:

get_mouse, mouse_pointer


mouse_pointer


Платформа:

DOS32

Синтаксис:

include mouse.e

mouse_pointer(i)

Описание:

Если i равно 0, выключает курсор мыши, в противном случае включает его. Множественные выключения курсора требуют такого же числа включений. Первый вызов get_mouse() или mouse_events() также включит курсор (один раз).

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

Временное выключение курсора мыши может быть необходимым, если на экран выводится новая информация.

После вызова text_rows() вам может понадобиться вызов mouse_pointer(1), чтобы курсор мыши стал снова видимым.

См. также:

get_mouse, mouse_events


not_bits


Синтаксис:

x2 = not_bits(x1)

Описание:

Выполняет логическую операцию NOT над каждым битом в x1. Бит в x2 будет равен 1, когда соответствующий бит в x1 равен 0, и будет равен 0, когда соответствующий бит в x1 равен 1.

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

Аргументом для данной функции может быть атом или ряд. Применяются правила операций на рядах.

Аргумент должен быть представимым как 32-битное число, со знаком или без знака.

Если вы предполагаете манипулировать с полными 32-битными величинами, вы должны объявить ваши переменные как atom, а не как integer. Тип integer Euphoria ограничен 31-м битом.

Результаты трактуются как числа со знаком. Они будут отрицательными, если старший бит равен 1.

Пример:


a = not_bits(#000000F7)

-- a будет равно -248 (т.е. FFFFFF08 интерпретируется как отрицательное число)


См. также:

and_bits, or_bits, xor_bits, int_to_bits


object


Синтаксис:

i = object(x)

Описание:

Проверяет, является ли x объектом. Это всегда будет истиной, так что object() всегда выдаёт 1.

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

Все предопределенные и пользовательские типы могут также быть использованы для проверки, принадлежит ли величина данному типу. Функция object() включена только для комплектности. Она всегда выдаёт 1.

Пример:


? object({1,2,3}) -- всегда печатает 1


См. также:

integer, atom, sequence


open


Синтаксис:

fn = open(st1, st2)

Описание:

Открывает файл или устройство, выдаёт номер файла, который служит аргументом для подпрограмм ввода/вывода. Если открытие не состоялось, выдаётся -1. Ряд st1 содержит путь к файлу или устройству. Ряд st2 задаёт режим, в котором файл должен быть открыт. Возможны следующие режимы:

"r" - открыть текстовый файл для чтения

"rb" - открыть двоичный файл для чтения

"w" - создать текстовый файл для записи

"wb" - создать двоичный файл для записи

"u" - открыть текстовый файл для обновления (чтение и запись)

"ub" - открыть двоичный файл для обновления

"a" - открыть текстовый файл для добавления

"ab" - открыть двоичный файл для добавления

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

Вывод в текстовые файлы будет иметь символы возврата каретки, автоматически добавляемые перед символами перевода строки. На входе эти символы возврата каретки удаляются. Символ control-Z (ASCII 26) является сигналом немедленного окончания файла. Примечание: на некоторых версиях DOS ввод пользователем control-Z может вызывать сбой стандартного ввода, устраняемый только закрытием окна DOS.

Ввод/вывод в двоичных файлах никак не модифицируется. Любая величина байта от 0 до 255 может быть считана или записана.

Некоторые типовые устройства, которые вы можете открыть под DOS или Windows :

"CON" - консоль (экран)

"AUX" - вспомогательный последовательный порт

"COM1" - последовательный порт 1

"COM2" - последовательный порт 2

"PRN" - принтер, подключенный к параллельному порту

"NUL" - несуществующее устройство, поглощающее вывод

В настоящее время доступна работа с файлами размером до 2 Gb. За этой границей некоторые файловые операции могут выполняться некорректно. Данный лимит со временем может быть пересмотрен.

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

DOS32: При исполнении программы под Windows 95 или более новой ОС этого семейства вы можете открыть любой существующий файл, который имеет длинное своё имя (т.е. длиннее, чем стандартный формат 8.3 DOS) или длинные имена каталогов в его пути, используя любой режим (чтение, запись и т.д.). Тем не менее, если вы попытаетесь создать новый файл с длинным именем (открыть в режиме "w" или "a" файл, который ещё не существует), это имя будет усечено до необходимого формата 8.3. Мы надеемся добавить возможность создания новых файлов с длинными именами в будущих версиях Euphoria.

WIN32, Linux and FreeBSD: Работа с длинными именами файлов полностью обеспечивается при чтении, записи и создании.

DOS32: Тщательно избегайте использования имён устройств в качестве имён файлов, даже если вы добавляете к ним расширение имени, т.е. CON.TXT, CON.DAT, CON.JPG и т.д. - все подобные имена относятся только к устройству CON, но не к файлам, существование которых невозможно.

Пример:


integer file_num, file_num95

sequence first_line

constant ERROR = 2


file_num = open("myfile", "r")

if file_num = -1 then

puts(ERROR, "не могу открыть myfilen")

else

first_line = gets(file_num)

end if


file_num = open("PRN", "w") -- открывает принтер для вывода


-- под Windows 95:

file_num95 = open("bigdirectoryname\verylongfilename.abcdefg",

"r")

if file_num95 != -1 then

puts(1, "это работает!n")

end if


См. также:

close, lock_file


open_dll


Платформа:

WIN32, Linux, FreeBSD

Синтаксис:

include dll.e

a = open_dll(st)

Описание:

Открывает файл библиотеки динамического связывания Windows(.dll) или файл общей библиотеки Linux или FreeBSD(.so). Выдаёт 32-битный адрес или 0, если файл .dll не найден. В ряде st должно содержаться относительное или абсолютное имя файла. Windows будет использовать обычный системный путь поиска для доступа к файлам .dll.

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

Значение адреса, выданное open_dll(), служит аргументом для подпрограмм define_c_proc(), define_c_func() и define_c_var().

Вы можете открыть один и тот же файл .dll или .so несколько раз. Для этого не потребуется лишней памяти и вы будете получать одно и то же значение адреса при каждом открытии.

Euphoria закрывает библиотеки .dll автоматически в конце исполнения программы.

Пример:


atom user32

user32 = open_dll("user32.dll")

if user32 = 0 then

puts(1, "Не могу открыть user32.dll!n")

end if


См. также:

define_c_func, define_c_proc, define_c_var, c_func, c_proc, platform.doc


or_bits


Синтаксис:

x3 = or_bits(x1, x2)

Описание:

Выполняет логическую операцию OR над соответствующими битами в x1 и x2. Бит в x3 будет равен 1, когда соответствующий бит или в x1, или в x2 равен 1.

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

Аргументами данной функции могут быть атомы или ряды. Применяются правила операций на рядах.

Аргументы должны быть представимы как 32-битные числа, со знаком или без знака.

Если вы намерены манипулировать полными 32-битными величинами, вы должны объявить ваши переменные как atom, а не как integer. Тип integer в Euphoria ограничен 31-м битом.

Результаты трактуются как числа со знаком. Они будут отрицательными, когда старший бит равен 1.

Пример 1:


a = or_bits(#0F0F0000, #12345678)

-- a будет равно #1F3F5678


Пример 2:


a = or_bits(#FF, {#123456, #876543, #2211})

-- a будет равно {#1234FF, #8765FF, #22FF}


См. также:

and_bits, xor_bits, not_bits, int_to_bits


...

от P до R


palette


Платформа:

DOS32

Синтаксис:

include graphics.e

x = palette(i, s)

Описание:

Изменяет оттенок для цвета номер i на s, где s является рядом интенсивностей составляющих цветов оттенка: {красный, зелёный, синий}. Каждая из составляющих s может иметь величину от 0 до 63. В случае успешного изменения выдаёт 3-х элементный ряд, содержащий величины составляющих цветов исходного цвета i, а все пикселы на экране, имевшие цвет i, приобретают новый оттенок. Если операция не удалась, выдаётся атом -1.

Пример:


x = palette(0, {15, 40, 10})

-- цвет номер 0 (обычно чёрный) изменён на оттенок

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*