如果我的某些参数被更改然后重新启动,我想更改ESP模块的行为。我的意思是这样的。
if(????)然后 打印(“默认值”)否则 print(“修改后的值”)结束
首先,我想到将一个标志写入文件,但如果它尚不存在,则会在引导期间导致错误。 还有更好的主意吗?
答案 0 :(得分:1)
如果要存储超出重启的值,则必须将它们存储在某些非易失性存储器中。因此,正如您已经建议的那样,使用文件是一种很好的方法。
不幸的是,您没有提供当它尚不存在时得到的错误消息,并且您没有说明该标志或文件是否不存在。
您需要做的是处理错误。因此,如果您的文件不存在,请让用户创建一个新文件或创建一个包含程序默认内容的文件。 国旗也一样。如果文件尚未包含标志,请使用默认值或要求用户提供一个。
只要从中学习或正确处理错误,就可以获得错误。
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:没有这样的文件或目录