我在Corona SDK中制作了一个应用程序,该应用程序从SD卡读取.txt文件,以更清晰的形式显示数据,然后允许您编辑它。 一些示例文本:
#207 USER PREFERENCES Time Between Pressure Log Samples
207=15
#208 USER PREFERENCES Auto Print Each Pressure Log Sample
208=No
#209 USER PREFERENCES Auto Print Each Event Log Entry
209=No
#210 USER PREFERENCES Selective Range Printing
210=1
基本上我需要能够从文件中获取特定的文本行,编辑它,并使用纯Lua将其重新放回原位。例如,我可能希望将208=No
更改为208=Yes
而不更改文件中的任何其他内容。
我已经搜索了这个网站,Google和Corona的API页面,但似乎没有任何东西可以找到我想要的东西。我是否必须阅读该行的所有文件并在该行之后并将其连接起来?
答案 0 :(得分:1)
我是否必须阅读该行的所有文件并在该行之后并将其连接起来?
您不必连接它。只需继续阅读文件并存储行,直到到达想要更改的行。进行更改,将文件的其余部分作为一个字符串读取,然后按顺序写入所有先前读取的行。
它看起来像这样:
local hFile = io.open(..., "r") --Reading.
local lines = {}
local restOfFile
local lineCt = 1
for line in hFile:lines() do
if(lineCt == ...) then --Is this the line to modify?
lines[#lines + 1] = ModifyLine(line) --Change old line into new line.
restOfFile = hFile:read("*a")
break
else
lineCt = lineCt + 1
lines[#lines + 1] = line
end
end
hFile:close()
hFile = io.open(..., "w") --write the file.
for i, line in ipairs(lines) do
hFile:write(line, "\n")
end
hFile:write(restOfFile)
hFile:close()