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

Разработчику библиотеки может понадобиться вызов crash_routine() в библиотеке. Это позволит более упорядоченно обращаться с данными, закрывая файлы, отпирая запертые файлы, высвобождая ресурсы и т.п. Но разработчик главной программы может иметь и свои собственные crash_routine(). И все аварийные функции будут отработаны Euphoria, если первая вызванная (последняя назначенная) и все последующие выдадут 0.

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

Если во время исполнения аварийной функции случится другая ошибка, снова вызывается распечатка отладочной информации, но имя файла в этом случае будет уже ex_crash.err, а не ex.err. С этого момента запрещаются любые новые вызовы аврийных функций, а вы остаётесь наедине с ex.err и ex_crash.err, чтобы с ними в руках попытаться найти причину всех несчастий.

Пример:

function crash(object x)

-- в случае пожара ...

-- (под Linux) отправить сообщение e-mail, содержащее файл ex.err

system("mail -s \"crash!\" [email protected] < ex.err > /dev/null", 2)

return 0

end function

crash_routine(routine_id("crash"))

См. также:

abort, crash_file, crash_message, отладка и профилирование

current_dir

Синтаксис:

include file.e

s = current_dir()

Описание:

Выдаёт имя текущего рабочего каталога (директории, папки, фолдера).

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

После имени текущего каталога не будет ни косой черты, ни обратной косой черты, за исключением случая под DOS/Windows, в корневом каталоге диска, где вы получите, например, C:\

Пример:

sequence s

s = current_dir()

-- s будет равно "C:\EUPHORIA\DOC", если вы находитесь в этом каталоге

См. также:

dir, chdir, getenv

cursor

Платформа:

WIN32, DOS32

Синтаксис:

include graphics.e

cursor(i)

Описание:

Задаёт форму курсора. Библиотека graphics.e содержит глобальные константы:

global constant NO_CURSOR = #2000,

UNDERLINE_CURSOR = #0607,

THICK_UNDERLINE_CURSOR = #0507,

HALF_BLOCK_CURSOR = #0407,

BLOCK_CURSOR = #0007

Вторая и четвертая шестнадцатиричные цифры (слева) дают номера верхнего и нижнего рядов пикселов в изображении курсора. От первой цифры зависит, будет курсор видимым или нет. Например, #0407 включает с 4-го по 7-ой ряд пикселов.

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

В пиксельных экранных режимах курсор не отображается, только в текстовых.

Пример:

cursor(BLOCK_CURSOR)

См. также:

graphics_mode, text_rows

custom_sort

Синтаксис:

include sort.e

s2 = custom_sort(i, s1)

Описание:

Сортирует элементы ряда s1, используя заданную сравнивающую функцию с номером (идентификатором) i. Выдаёт отсортированный ряд.

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

Заданная вами заказная сравнивающая функция должна быть функцией двух аргументов наподобие Euphoria-функции compare(). Она должна сравнивать два объекта и выдавать -1, 0 или +1.

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

demo\csort.ex

См. также:

sort, compare, routine_id

date

Синтаксис:

s = date()

Описание:

Выдаёт ряд со следующей информацией:

{год, -- начиная с 1900

месяц, -- январь = 1

день, -- день месяца, начиная с 1

час, -- от 0 до 23

минута, -- от 0 до 59

секунда, -- от 0 до 59

день недели, -- воскресенье = 1

день года} -- 1 января = 1

Пример:

now = date()

-- now равно: {95,3,24,23,47,38,6,83}

-- т.е. пятница, 24 марта 1995 года, 23 часа 47 минут 38 секунд, 83-ий день года

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

Величина, выдаваемая для года, является числом лет, начиная с 1900, а не последними 2-мя цифрами года. В 2000 году эта величина составила 100. В 2001 это было 101 и т.д. Естественно, часы и календарь вашего компьютера должны быть правильно установлены на текущие время и дату.

См. также:

time

define_c_func

Синтаксис:

include dll.e

i1 = define_c_func(x1, x2, s1, i2)

Описание:

Выдаёт номер (идентификатор) подпрограммы для заданной Си-функции или же функции машинного кода. Аргументами служат характеристики заданной функции. Выданный номер i1 используется далее в качестве первого аргумента при вызове подпрограммы c_func(), которая и запускает заданную внешнюю функцию на исполнение из Euphoria.

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

Все книги серии Euphoria

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

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных