Lua - Попытка записи в файл

Я использую Rainmeter для передачи значений давления воздуха в сценарий lua, который затем хочу записать в текстовый файл и сохранить последнее число x, которое будет получено позже, для создания гистограммы изменений давления во времени.

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

В моем скрипте есть функция Update, где я передаю и возвращаю значение давления из Rainmeter, а затем другую функцию, называемую writetofile, где я пытаюсь открыть, записать, а затем закрыть текстовый файл. Именно с этой частью у меня проблемы.

Мой сценарий выглядит следующим образом:

function Initialize()
end -- function Initialize

function Update()
    sMyPressure = SELF:GetOption('CurrentPressure')
    return sMyPressure
end -- function Update

function writetofile()
    file = io.open("pressures.txt", "w")
    file:write("Hello World")
    file:close()
end

РЕДАКТИРОВАТЬ

Я попытался удалить функцию writetofile и переместить содержимое в функцию обновления, но это не сработало, и скрипт перестал передавать sMyPressure обратно в сценарий Rainmeter, а также не записал в текстовый файл.

например:

function Initialize()
end -- function Initialize

function Update()
    sMyPressure = SELF:GetOption('CurrentPressure')
    return sMyPressure
    file = io.open("pressures.txt", "w")
    file:write("Hello World")
    file:close()
end -- function Update

Что я делаю неправильно? файл pressures.txt существует и доступен для записи, и если я его удаляю, он не создается.

Может кто-нибудь помочь, пожалуйста.

Благодарю.

РЕДАКТИРОВАТЬ

Получил это работает.

1) Я не могу вызвать функцию из Обновления

2) Как сказал Майк, мне нужен полный путь к файлу

3) Этот путь требует двойного возврата \

Рабочий код, если кто-то заинтересован или имеет ту же проблему:

function Initialize()
end -- function Initialize

function Update()
    sMyPressure = SELF:GetOption('CurrentPressure')
    writetofile(sMyPressure)
    return sMyPressure
end -- function Update

function writetofile(CurrentPressure)
    file = io.open("C:\\Users\\Hedley\\Documents\\Rainmeter\\Skins\\SimplyNova\\Wunderground\\pressures.txt", "a")
    -- file:write("hello", "\n")
    file:write(CurrentPressure, "\n")
    file:close()
end

0 ответов

Другие вопросы по тегам