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

end if

См. также:

compare, операции сравнения (=)

find

Синтаксис:

i = find(x, s)

Описание:

Ищет объект x как элемент ряда s. В случае первого же успеха выдаёт индекс (номер) текущего элемента в ряде s, который совпадает по величине с x, и прекращает дальнейший поиск. При неудаче поиска выдаёт 0.

Пример 1:

location = find(11, {5, 8, 11, 2, 3})

-- индекс location будет равен 3

Пример 2:

names = {"fred", "rob", "george", "mary", ""}

location = find("mary", names)

-- индекс location будет равен 4

См. также:

find_from, match, match_from, compare

find_from

Синтаксис:

i1 = find_from(x, s, i2)

Описание:

Ищет объект x как элемент ряда s, начиная поиск с индекса (номера) i2. В случае первого же успеха выдаёт индекс (номер) текущего элемента в ряде s, который совпадает по величине с x, и прекращает дальнейший поиск. При неудаче поиска выдаёт 0. Индекс i2 может иметь любую величину в диапазоне от 1 до длины ряда s плюс 1 - аналогично первому индексу сечения (отрезка) ряда s.

Пример 1:

location = find_from(11, {11, 8, 11, 2, 3}, 2)

-- индекс location будет равен 3

Пример 2:

names = {"mary", "rob", "george", "mary", ""}

location = find_from("mary", names, 3)

-- индекс location будет равен 4

См. также:

find, match, match_from, compare

float32_to_atom

Синтаксис:

include machine.e

a1 = float32_to_atom(s)

Описание:

Преобразует ряд, состоящий из 4 байтов, в атом. Считается, что эти 4 байта должны содержать число с плавающей точкой в 32-битном формате по стандарту IEEE.

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

Любая 4-х байтовая величина, выражающая 32-битное число с плавающей точкой в формате IEEE, может быть преобразована в атом.

Пример:

f = repeat(0, 4)

fn = open("numbers.dat", "rb") -- побайтовое чтение

f[1] = getc(fn)

f[2] = getc(fn)

f[3] = getc(fn)

f[4] = getc(fn)

a = float32_to_atom(f)

См. также:

float64_to_atom, atom_to_float32

float64_to_atom

Синтаксис:

include machine.e

a1 = float64_to_atom(s)

Описание:

Преобразует ряд, состоящий из 8 байтов, в атом. Считается, что эти 8 байтов должны содержать число с плавающей точкой в 64-битном формате по стандарту IEEE.

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

Любая 8-ми байтовая величина, выражающая 64-битное число с плавающей точкой в формате IEEE, может быть преобразована в атом.

Пример:

f = repeat(0, 8)

fn = open("numbers.dat", "rb") -- побайтовое чтение

for i = 1 to 8 do

f[i] = getc(fn)

end for

a = float64_to_atom(f)

См. также:

float32_to_atom, atom_to_float64

floor

Синтаксис:

x2 = floor(x1)

Описание:

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

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

Эта функция может быть применена к атому или ко всем элементам ряда.

Пример:

y = floor({0.5, -1.6, 9.99, 100})

-- y будет равно {0, -2, 9, 100}

См. также:

remainder

flush

Синтаксис:

include file.e

flush(fn)

Описание:

Когда вы записываете данные в файл, обычно Euphoria сначала размещает данные в буфере, организованном в оперативной памяти, пока не будет накоплен достаточно большой объём этих данных. Этот сравнительно большой объём данных может быть затем очень быстро и эффективно записан на диск. Иногда у вас может возникнуть необходимость форсировать, ускорить немедленный вывод данных на диск, хотя оптимальный буфер ещё не заполнен. Чтобы сделать это досрочное выталкивание данных, и предназначена процедура flush(fn), где fn является номером файла, который был открыт вами для записи или дополнения.

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

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

Используйте flush(), когда, например, другому процессу необходимо видеть все данные уже записанными на диск, но вы ещё не готовы закрыть файл.

Пример:

f = open("logfile", "w")

puts(f, "Record#1\n")

puts(1, "По готовности нажмите Enter\n")

flush(f) -- Команда выталкивает "Record #1" в файл "logfile" на диске.

-- Без этой команды "logfile" будет ещё пустым,

-- когда мы уже закончим ввод с клавиатуры.

s = gets(0) -- ожидание ввода с клавиатуры

См. также:

close, lock_file

free

Синтаксис:

include machine.e

free(a)

Описание:

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

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

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

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

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

demo\callmach.ex

См. также:

allocate, free_low

free_console

Платформа:

WIN32, Linux, FreeBSD

Синтаксис:

include dll.e

free_console()

Описание:

Закрывает (удаляет) консольное окно, связанное с вашей программой (если оно существует).

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

Эта процедура используется, если вы получаете нежелательное сообщение "Press Enter" в конце исполнения вашей программы на платформах Windows или Linux/FreeBSD.

См. также:

clear_screen, platform_r.htm

free_low

Платформа:

DOS32

Синтаксис:

include machine.e

free_low(i)

Описание:

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

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

Процедуру free_low() следует использовать для возвращения участков стандартной памяти в резерв программы во время её работы. Это снизит вероятность исчерпания стандартной памяти. Не обращайтесь к тем участкам памяти, которые были освобождены. Когда ваша программа завершается, вся занятая ею память, включая резервы программы, возвращается в распоряжение операционной системы.

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