В моем сценарии lua есть некоторые переменные, которые я хотел бы поместить в файл «settings.conf», чтобы я мог легко изменять переменные, не погружаясь в код.
В других языках используется 'include', но в Lua это кажется другим, потому что он загружает модуль. Мне нужно только загрузить файл конфигурации для некоторых параметров.
Какую команду мне использовать для этого?
Как включить файл конфигурации для переменных в Lua
Ответы (2)
Самый простой способ выполнить сценарий Lua из другого сценария — использовать dofile
a>, который принимает путь к файлу:
dofile"myconfig.lua"
dofile "/usr/share/myapp/config.lua"
Проблема с dofile
заключается в том, что он может вызвать ошибку и прервать вызывающий скрипт. Если вы хотите обрабатывать ошибки, такие как несуществующий файл, ошибки синтаксиса или выполнения, используйте pcall
:
local ok,e = pcall(dofile,"myconfig.lua")
if not ok then
-- handle error; e has the error message
end
Если вам нужен более точный контроль, используйте loadfile
, за которым следует вызов функции:
local f,e = loadfile("myconfig.lua")
if f==nil then
-- handle error; e has the error message
end
local ok,e = pcall(f)
if not ok then
-- handle error; e has the error message
end
person
lhf
schedule
21.09.2015
В конце концов, ваше решение было лучше. Я столкнулся с некоторыми странными проблемами при использовании другого решения.
- person ; 22.09.2015
Вы можете сделать что-то вроде этого:
конфиг.луа:
myconf = {
param1 = "qwe";
param2 = 7;
}
основная программа:
package.path = '*.lua;' .. package.path
require "config"
print("config param1 = " .. myconf.param1 .. "\n")
это хорошо работает в большинстве случаев.
person
sisoft
schedule
21.09.2015
за исключением случаев, когда вы хотите записать новую конфигурацию в файл.
- person hjpotter92; 21.09.2015
@ hjpotter92, вы имеете в виду, что если я перезапишу этот файл, конфигурация не будет обновляться? Прошу прощения за путаницу, но я не совсем понимаю ваше утверждение.
- person ; 21.09.2015