Ввод/вывод в двоичныхфайлах никак не модифицируется. Любая величина байта от 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, "не могу открыть myfile\n")
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, FreeBS D
Синтаксис:
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
...
palette
Платформа:
DOS3 2
Синтаксис:
include graphics.e
x = palette(i, s)
Описание:
Изменяет оттенок для цвета номер i на s, где s является рядом интенсивностей составляющих цветов оттенка: {красный, зелёный, синий}. Каждая из составляющих s может иметь величину от 0 до 63. В случае успешного изменения выдаёт 3-х элементный ряд, содержащий величины составляющих цветов исходного цвета i, а все пикселы на экране, имевшие цвет i, приобретают новый оттенок. Если операция не удалась, выдаётся атом -1.
Читать дальше