Комментарии:
Атомы, содержащиеся в x, будут выведены максимум с 10 значащими цифрами, как и при помощи print().
Пример 1:
s = sprint(12345)
-- s равно "12345"
Пример 2:
s = sprint({10,20,30}+5)
-- s равно "{15,25,35}"
См. также:
print, sprintf, value, get
sprintf
Синтаксис:
s = sprintf(st, x)
Описание:
Эта функция делает точно то же самое, что и printf(), но вывод производится не в файл и не на устройство (экран), а в ряд. Ряд st является строкой формата, x - величина или ряд, подлежащие форматированию. printf(fn, st, x)является эквивалентом для puts(fn, sprintf(st, x)).
Комментарии:
Некоторые типовые применения sprintf():
1. Преобразование чисел в строки.
2. Создание строк для подачи в system().
3. Создание форматированных сообщений об ошибках, которые могут быть поданы в обработчик общих сообщений об ошибках.
Пример:
s = sprintf("%08d", 12345)
-- s равно "00012345"
См. также:
printf, value, sprint, get, system
sqrt
Синтаксис:
x2 = sqrt(x1)
Описание:
Выдаёт квадратный корень x1.
Комментарии:
Данная функция может быть применена к атому или ко всем элементам ряда.
Попытка извлечь квадратный корень из отрицательного числа вызовет аварийное завершение вашей программы с сообщением об ошибке времени исполнения.
Пример:
r = sqrt(16)
-- r равно 4
См. также:
log, power
system
Синтаксис:
system(st, i)
Описание:
Подаёт командную строку st в интерпретатор команд операционной системы для немедленного исполнения. Аргумент i необходим для указания способа возвращения из дочерней программы, запущенной командой system():
Когда i равно 0, предыдущий графический режим восстанавливается и экран очищается.
Когда i равно 1, выдаётся звуковой сигнал и программа ждет нажатия пользователя на клавишу, прежде чем восстановить предыдущий графический режим.
Когда i равно 2, графический режим не восстанавливается и экран не очищается.
Комментарии:
i = 2 должно использоваться, только когда известно, что команда, выполняемая system(), не будет изменять графический режим.
Вы можете использовать Euphoria как мощнейший "пакетный" (.bat) язык, задавая нужные вам вызовы system() и system_exec().
system() запускает новую копию интерпретатора команд DOS или Linux/FreeBSD.
system() позволяет вам использовать из командной строки перенаправление стандартных входа и выхода, задавая его в строке st.
Под DOS32программа Euphoria стартует без использования расширенной памяти, но после старта начинает её использовать. Если для исполнения программы расширенной памяти перестанет хватать, программа начнёт занимать остатки стандартной памяти. При исчерпании и стандартной памяти начнётся использование виртуальной памяти, т.е. пересылка кода и данных на диск. Команда DOS, запущенная на исполнение с помощью system(), прервётся, если для её исполнения окажется недостаточно стандартной памяти. Чтобы избежать подобных ситуаций, вы можете зарезервировать некоторый объём стандартной (нижней) памяти, выполнив команду:
SET CAUSEWAY=LOWMEM:xxx
где xxx есть число K (килобайт) стандартной памяти, отводимой в резерв DOS. Резервирование должно быть выполнено до запуска вашей программы. Вы можете производить резервирование из вашего файла autoexec.batили из .bat-файла, запускающего вашу программу. Например:
SET CAUSEWAY=LOWMEM:80
ex myprog.ex
По данной команде будет зарезервировано 80K стандартной памяти, которых достаточно для исполнения простых команд DOS вроде COPY, MOVE, MKDIR и т.п., если вы их потом подадите из своей программы myprog.ex.
Пример 1:
system("copy temp.txt a:\\temp.bak", 2)
-- не забывайте писать двойную косую черту в вашей команде, чтобы в DOS
-- передавалась штатная одинарная
Пример 2:
system("ex \\test\\myprog.ex outdata", 2)
-- исполняется myprog, при этом её стандартные вход и выход
-- перенаправлены
См. также:
system_exec, dir, current_dir, getenv, command_line
system_exec
Синтаксис:
i1 = system_exec(st, i2)
Описание:
Пытается выполнить команду, заданную в строке st. Ряд st должен содержать команду запуска исполняемой программы, возможно, с некоторыми параметрами командной строки. Если программа может исполняться, в i1 будет записан код возврата из программы после её завершения. Если запуск программы невозможен, функция system_exec() выдаёт -1. В i2 должен быть указан код, дающий способ действий с текущим графическим режимом после завершения программы, вызванной system_exec(). Эти коды имеют те же самые значения, что и для функции system():
Читать дальше