Если вы хотите хранить значения за пределами перезагрузки, их необходимо хранить в некоторой энергонезависимой памяти. Поэтому использование файла - это хороший способ, который вы уже предложили.
К сожалению, вы не указали сообщение об ошибке, которое вы получили, когда оно еще не существует, и вы не сказали, что флаг или файл не существует.
Что вам нужно сделать, это обработать ошибку. Поэтому, если ваш файл не существует, попросите пользователя создать новый или создать файл с содержимым по умолчанию из вашей программы. То же самое происходит с флагом. Если файл еще не содержит флага, используйте значение по умолчанию или попросите пользователя дать его.
Неплохо или неправильно ошибаться, так как долго учитесь у них или обрабатывайте их должным образом.
io.open(filename[,mode])
возвращает nil
вместе с сообщением об ошибке в случае возникновения ошибки. Так просто не сделать что-то вроде:
local fileName = "C:\\superfile.txt"
local fileHandle, errorMsg = io.open(fileName)
if not fileHandle then
print("File access error: ", errorMsg)
-- add some error handling here
end
Таким образом, в случае, если вы не имеете файл, вы получите сообщение об ошибке доступа
Файл: C: \ superfile.txt: Нет такого файла или каталога
Итак, если ваш файл не существует, попросите пользователя создать новый файл OneUnfortunazely – Steve
«Итак, если ваш файл не существует, попросите пользователя создать новый». К сожалению, это не так просто. Как упоминалось в заголовке, речь идет о микросхеме ESP micro wifi. Если изменение параметра происходит через Wi-Fi-связь, после перезагрузки ожидается изменение, но автономное поведение. – Steve
@steve Хорошее взаимодействие с пользователем - это всего лишь один общий вариант. Я также предложил использовать жестко кодированные значения по умолчанию, которые, конечно, более подходят для встроенной системы. Так или иначе вы должны обрабатывать ошибки файлов для устранения исключительной ситуации. – Piglet