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

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

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

Пример:

buffer = allocate(100)

for i = 0 to 99 do

poke(buffer+i, 0)

end for

См. также:

free, allocate_low, peek, poke, mem_set, call

allocate_low

Платформа:

DOS32

Синтаксис:

include machine.e

i2 = allocate_low(i1)

Описание:

Подготавливает i1 последовательных байтов в нижней памяти, т.е. в стандартной памяти (адрес ниже 1 мегабайта). Выдаёт начальный адрес участка памяти или 0, если память не может быть выделена.

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

Некоторые обработчики прерываний DOS требуют, чтобы вы заносили в регистры один или несколько адресов. Эти адреса должны принадлежать к области стандартной памяти, чтобы DOS была способна читать и записывать по этим адресам.

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

demo\dos32\dosint.ex

См. также:

dos_interrupt, free_low, allocate, peek, poke

allocate_string

Синтаксис:

include machine.e

a = allocate_string(s)

Описание:

Подготавливает в памяти пространство для строкового (символьного) ряда s. Копирует ряд s в это пространство, заканчивая строку служебным символом 0, и трактуя каждый элемент ряда как единственный байт. Такой формат требуется для Си-строк. Выдаёт начальный адрес строки в памяти. Если участок памяти достаточного размера недоступен, выдаёт 0.

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

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

Пример:

atom title

title = allocate_string("The Wizard of Oz")

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

demo\win32\window.exw

См. также:

allocate, free

allow_break

Синтаксис:

include file.e

allow_break(i)

Описание:

Если аргумент i = 1 (истина), команды control-c и control-Break получают возможность прервать вашу программу, когда она пытается в очередной раз обратиться к клавиатуре.

Если i = 0 (ложь), ваша программа не будет реагировать на команды control-c или control-Break.

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

При нажатии клавиш control-c или control-Break DOS будет выводить ^C на экран, даже если ваша программа не может быть прервана.

Изначально ваша программа может быть прервана в любой точке, где она пытается читать с клавиатуры. Она может быть также прервана другими операциями ввода/вывода в зависимости от режима, установленного пользователем в его файле config.sys (уточните по руководству MS-DOS особенности команды BREAK). Но для некоторых типов программ возможность такого внезапного прерывание с клавиатуры может иметь некоторые негативные последствия и даже приводить в результате к потере данных. Вызов allow_break(0) позволяет вам избежать подобных опасных ситуаций.

И вы можете проверять, не нажимал ли пользователь control-c или control-Break, чтобы продуманно отреагировать на это нажатие и безопасно прервать программу. Для такой проверки служит функция check_break().

Пример:

allow_break(0) -- не дайте пользователю прикончить меня!

См. также:

check_break

and_bits

Синтаксис:

x3 = and_bits(x1, x2)

Описание:

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

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

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

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

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

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

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

Пример 1:

a = and_bits(#0F0F0000, #12345678)

-- a равно #02040000

Пример 2:

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

-- a равно {#56, #43, #11}

Пример 3:

a = and_bits(#FFFFFFFF, #FFFFFFFF)

-- a равно -1

-- заметьте, что #FFFFFFFF является положительным числом,

-- но результат побитовой логической операции трактуется

-- как 32-битное число со знаком, так что он отрицателен.

См. также:

or_bits, xor_bits, not_bits, int_to_bits

append

Синтаксис:

s2 = append(s1, x)

Описание:

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

Все книги серии 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.

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

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