求个能用的LUA读取或者写入记事本内容的代码,

求个能用的LUA读取或者写入记事本内容的代码,,第1张

我一看就觉得眼熟 果然是我写的代码
读和写都没问题
会出现问题,是因为 对空文件进行 *** 作了吧
读的那一部分 local file = ioopen("1txt")
后面就直接 *** 作了,并没有判断file是否打开成功
如果你的桌面没有1txt 则打开会出错 所以后面肯定也会出错
只要加一个if 判断一下就好了
local file = ioopen("1txt")
if file then
for l in file:lines() do
print(l)
end
end
file:close()

local file = ioopen("1txt","r")
local str = file:read("a")
file:close()
local newStr = stringgsub(str,"aaa","bbb")
print(newStr)

--移除文件
function MkidrremoveFile(path)

              iowritefile(path, "")

               osremove(path)

end

--读取文件

function MkidrreadFile(path)

                  local file = ioopen(path, "rb")

                  if file then

                              local content = file:read("all")

                               ioclose(file)

                               return content

                    end

             return nil

end
-- Lua   lfs 库的使用

lfsattributes(filepath [, aname]) 获取路径指定属性
lfschdir(path) 改变当前工作目录,成功返回true,失败返回nil加上错误信息

lfscurrentdir 获取当前工作目录,成功返回路径,失败为nil加上错误信息

lfsdir(path) 返回一个迭代器(function)和一个目录(userdata),每次迭代器都会返回一个路径,直到不是文件目录为止,则迭代器返回nil

lfslock(filehandle, mode[, start[, length]])

lfsmkdir(dirname)  创建一个新目录

lfsrmdir(dirname) 删除一个已存在的目录,成功返回true,失败返回nil加上错误信息
-- Lua   io *** 作

ioopen (filename [, mode])
功能:按指定的模式打开一个文件,成功则返回文件句柄,失败则返回nil+错误信息

mode:

"r": 读模式 (默认);

"w": 写模式;

"a": 添加模式;

file:write()
功能:按指定的参数格式输出文件内容,参数必须为字符或数字,若要输出其它值,则需通过tostring或stringformat进行转换

file:close()

功能:关闭文件,lua有垃圾自动回收

ioexists()
测试文件是否存在,如果存在返回true

-- Lua   os   *** 作

osremove (filename)
功能:删除文件或一个空目录,若函数调用失败则返加nil加错误信息

osrename (oldname, newname)

功能:更改一个文件或目录名,若函数调用失败则返加nil加错误信息

ossetlocale (locale [, category])

功能:设置程序的当前设置,函数返回最新的值,失败则返回nil

ostime ([table])
功能:按table的内容返回一个时间值(数字),若不带参数则返回当前时间table的字段:

lua游戏脚本中,有许多是需要登录许多小号,这些小号一般存放在一个文档里,脚本运行时需要读取这些数据。
下面有个txt文档,记录这账号与密码的数据,如下
其中,左边为账号,右边为密码,中间用空格隔开(空格数不确定)。账号允许使用中英文、数字、符号(但不允许有空格),密码允许使用中英文、数字、符号(允许有空格,但不允许出现在最前或最后),忽略每行的首尾空格。
下面在电脑上进行测试,由于我的电脑的 *** 作系统是Windows简体中文版,也就是系统的字符编码为GBK。而手机采用的字符编码一版是UTF-8(特别要注意这点!)
为了避免乱码,将txt文档与lua文件均采用和系统的字符编码相同的编码(很重要!)
对于GBK编码的系统,保存时,选择ANSI(记事本默认保存的就是这个格式)
如果用于手机上运行,则选择UTF-8
lua实现:
运行结果:
稍作修改即可应用于手机端,这里以iOS作为演示:
日志:
本程序的主要难点在于,逐行读取的迭代器lines()函数、trim()函数实现、账号密码的匹配、table的 *** 作。
其中用到的自定义函数stringtrim()大家可以记一下,方便在自己的程序里调用,还是挺实用的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13411010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存