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

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

Читать бесплатно W Cat - Язык программирования Euphoria. Справочное руководство. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

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

Если Си-функция не требует подачи никаких аргументов, тогда ряд s должен быть пустым рядом {}.

Если в качестве аргумента вы подаёте величину, которая содержит дробную часть, в то время как Си-функция ожидает целочисленный тип Си, аргумент будет округлен в сторону нуля, т.е. 5.9 будет подано как 5, а -5.9 будет подано как -5.

Функция Си может входить в состав библиотеки .dll или .so, созданной транслятором с Euphoria на Си. В этом случае выдаваемая ею величина могла бы быть типа атом или ряд Euphoria. Но функции Си и функции машинного кода могут выдавать только целочисленные величины или, в более общем случае, атомы (числа с плавающей точкой по стандарту IEEE).

Пример:

atom user32, hwnd, ps, hdc

integer BeginPaint

-- открыть user32.dll - она содержит Си-функцию BeginPaint

user32 = open_dll("user32.dll")

-- Си-функция BeginPaint принимает аргументы типа C int и

-- типа C pointer, и выдаёт величину типа C int в качестве результата:

BeginPaint = define_c_func(user32, "BeginPaint",

{C_INT, C_POINTER}, C_INT)

-- вызвать BeginPaint, подавая hwnd и ps в качестве аргументов,

-- присвоить результат hdc:

hdc = c_func(BeginPaint, {hwnd, ps})

См. также:

c_proc, define_c_func, open_dll, platform_r.htm

c_proc

Платформа:

WIN32, Linux, FreeBSD

Синтаксис:

c_proc(i, s)

Описание:

Вызывает Си-функцию или процедуру машинного кода, используя идентификатор (номер) процедуры i. Аргумент i должен быть разрешенным идентификатором процедуры, выданным функцией define_c_proc(). Аргумент s является рядом длины n, содержащим величины аргументов вызываемой Си-функции (процедуры), где n - число аргументов, требуемых Си-функцией (процедурой).

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

Если Си-функция не требует подачи никаких аргументов, тогда ряд s должен быть пустым рядом {}.

Если в качестве аргумента вы подаёте величину, которая содержит дробную часть, в то время как Си-функция ожидает целочисленный тип Си, аргумент будет округлен в сторону нуля, т.е. 5.9 будет подано как 5, а -5.9 будет подано как -5.

Функция Си может входить в состав библиотеки .dll или .so, созданной транслятором с Euphoria на Си.

Пример:

atom user32, hwnd, rect

integer GetClientRect

-- открыть user32.dll - здесь содержится Си-функция GetClientRect

user32 = open_dll("user32.dll")

-- GetClientRect - это Си-функция типа VOID, у которой два аргумента - типа C int

-- и типа C pointer:

GetClientRect = define_c_proc(user32, "GetClientRect",

{C_INT, C_POINTER})

-- подать hwnd и rect в качестве аргументов

c_proc(GetClientRect, {hwnd, rect})

См. также:

c_func, call, define_c_proc, open_dll, platform_r.htm

call_func

Синтаксис:

x = call_func(i, s)

Описание:

Вызывает определенную программистом Euphoria-функцию с идентификатором (номером) подпрограммы i. Аргумент i должен быть разрешенным идентификатором (номером), выданным routine_id(). Аргумент s является рядом длины n, содержащим аргументы занумерованной функции, где n - число аргументов, требуемых функцией номер i. Переменная x будет содержать результат, выданный функцией номер i.

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

Если функция номер i не требует подачи никаких аргументов, тогда ряд s должен быть пустым рядом {}.

Пример программы:

democsort.ex

См. также:

call_proc, routine_id

call_proc

Синтаксис:

call_proc(i, s)

Описание:

Вызывает определенную программистом Euphoria-процедуру с идентификатором (номером) подпрограммы i. Аргумент i должен быть разрешенным идентификатором (номером), выданным routine_id(). Аргумент s является рядом длины n, содержащим аргументы занумерованной процедуры, где n - число аргументов, требуемых процедурой номер i.

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

Если процедура номер i не требует подачи никаких аргументов, тогда ряд s должен быть пустым рядом {}.

Пример:

global integer foo_id

procedure x()

call_proc(foo_id, {1, "Hello Worldn"})

end procedure

procedure foo(integer a, sequence s)

puts(a, s)

end procedure

foo_id = routine_id("foo")

x()

См. также:

call_func, routine_id

chdir

Синтаксис:

include file.e

i = chdir(s)

Описание:

Изменяет текущий каталог (директорию, фолдер, папку) по пути, который задан рядом s. Аргумент s должен содержать имя каталога, существующего на данной машине. В случае успешного изменения каталога chdir() выдаёт 1. Если перейти в заданный каталог не удалось, chdir() выдаёт 0.

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

Переходя в необходимый вам каталог и делая его текущим, вы можете затем обращаться к файлам в этом каталоге, указывая только имя файла, без упоминания полного пути к этому файлу.

Функция current_dir() выдаёт имя текущего каталога.

Под DOS32 и WIN32 текущий каталог является общим для всех программ и процессов, исполняемых в одной оболочке (т.е. под управлением одного и того же или единственного экземпляра интерпретатора команд ОС).

Под Linux/FreeBSD дочерние программы могут изменять текущий каталог для своих нужд, но эти изменения не будут относиться к текущему каталогу родительской программы.

Пример:

if chdir("c:\euphoria") then

f = open("readme.doc", "r")

else

puts(1, "Ошибка: отсутствует каталог euphoria?n")

end if

См. также:

current_dir

check_break

Синтаксис:

include file.e

i = check_break()

Описание:

Выдаёт число нажатий сочетания клавиш control-c или control-Break, имевших место с момента последнего вызова check_break(), или с начала программы, если этот вызов первый.

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

Данная функция полезна, если в вашей программе была исполнена команда allow_break(0), которая запрещает прерывание вашей программы по нажатию сочетания клавиш control-c и control-Break. Вы можете использовать check_break(), чтобы выяснить, не нажимал ли всё-таки пользователь одно из этих аварийных сочетаний клавиш. Затем вы можете сделать всё то, что требуется для аккуратного и безошибочного завершения вашей программы без малейшего риска потери данных и повреждений файловой системы на диске.

В этих условиях ни control-c, ни control-Break не будут выданы как управляющие символы в операционную систему, если даже вы читаете состояние клавиатуры. Вы сможете только обнаружить, что нажатия состоялись, вызвав check_break().

Пример:

k = get_key()

if check_break() then

temp = graphics_mode(-1)

puts(1, "Программа завершается ...")

save_all_user_data()

abort(1)

end if

См. также:

allow_break, get_key

clear_screen

Синтаксис:

clear_screen()

Описание:

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

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

Процедура работает во всех текстовых и пиксельных режимах.

См. также:

bk_color, graphics_mode

close

Синтаксис:

close(fn)

Описание:

Закрывает файл или устройство, завершив вывод символов, если они ещё оставались в буфере к данному моменту.

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

Когда ваша программа заканчивается при нормальном её течении, все открытые файлы и устройства закрываются автоматически, если не были закрыты ранее с помощью команды close(fn).

См. также:

open, flush

command_line

Синтаксис:

s = command_line()

Описание:

Выдаёт ряд, состоящий из строк, в котором каждая строка является словом, введённым в командную строку, с которой была запущена ваша программа. В первом слове будет путь к интерпретатору Euphoria ex.exe, exw.exe или exu, или к вашему связанному исполняемому файлу. В следующем слове будет или имя вашего Euphoria .ex файла, или (опять же) путь к вашему связанному исполняемому файлу. Затем будут идти все те дополнительные слова, которые были введены вами. Вы можете использовать эти слова в вашей программе, например, задавая тот или иной режим её работы. Серии слов можно забирать в кавычки, чтобы тем самым превратить серию слов в единственный аргумент.

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

Собственно интерпретаторы Euphoria не используют никаких аргументов командной строки. Но вы можете использовать любые аргументы по своему усмотрению для своих собственных программ.

Если вы преобразовали вашу программу к виду .exe с помощью биндера или транслятора, вы найдете, что аргументы командной строки остались теми же самыми, за исключением первых двух, хотя ваш пользователь уже не вводит "ex" в командной строке (см. примеры ниже).

Пример 1:

-- Пользователь вводит: ex myprog myfile.dat 12345 "the end"

cmd = command_line()

-- cmd будет равно:

{"C:EUPHORIABINEX.EXE",

"myprog",

"myfile.dat",

"12345",

"the end"}

Пример 2:

-- Ваша программа окутана, её имя "myprog.exe",

-- и помещена в каталог c:myfiles

Перейти на страницу:

W Cat читать все книги автора по порядку

W Cat - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


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

Отзывы читателей о книге Язык программирования Euphoria. Справочное руководство, автор: W Cat. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


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