我有一个带有nodemcu固件的ESP8266模块,必须使用lua进行编程。 我写了一些代码来保存从文件中的html页面输入的用户名/密码凭据。
这是lua函数,它工作正常
function parse_wifi_credentials(vars)
if vars == nil or vars == "" then
return false
end
local _, _, wifi_ssid = string.find(vars, "wifi_ssid\=([^&]+)")
local _, _, wifi_password = string.find(vars, "wifi_password\=([^&]+)")
if wifi_ssid == nil or wifi_ssid == "" or wifi_password == nil then
return false
end
pwd_len = string.len(wifi_password)
if pwd_len ~= 0 and (pwd_len < 8 or pwd_len > 64) then
return false
end
file.open("credentials.txt", "a")
file.write(wifi_ssid)
file.write(wifi_password)
file.flush()
file.close()
return true
end
一切正常,但我的输出文件类似于
usernamepasswordotherusernameotherpassword
所以我将值插入到单独的字段中,如
file.write(wifi_ssid)
file.write(":")
file.write(wifi_password)
以及许多其他方式,但我的代码在我的ESP8266上无效,因为我收到not enough memory
错误但如果我不打印:
我有10 kb免费的东西。
我也试过了file.write(wifi_ssid, "\n")
但它有效,但输出没有改变。
Annyone知道如何插入字符beetwen字段?
答案 0 :(得分:0)
您需要使用
file.writeline(wifi_ssid)
在文件行使用行尾char。
要确定文件是否因垃圾内容而导致内存不足问题,您可以先将其删除并重新写入凭据。
还可以在file.writeln或flush操作之后使用 collectgarbage()方法。