
--读取文件内容,返回一个字符串function getfile(file_name) local f = assert(io.open(file_name,'r')) --确保读取文件不会错误 local string = f:read("*all") --读取文件的所有内容 f:close() --这里记得关闭文件指针 return string endfunction split(str,reps) --这里是分割字符串的函数 local resultStrsList = {} string.gsub(str,'[^' .. reps ..']+',function(w) table.insert(resultStrsList,w) end ) return resultStrsListendfunction loadCsvfile(filePath) --读取文件 local data = getfile(filePath) --按行划分 local linestr = split(data,'\n\r') --[[从第三行开始保存(第一行是标题,第二行是注释,后面的行才是内容) 用二维数组保存:arr[ID][属性标题字符串] --]] local Titles = split(linestr[1],",") --打印第一行的数据 --print(Titles[1]..":"..Titles[2]) for ii=1,#Titles,1 do print(Titles[ii]) end local ID = 1 local arrs = {} print(#linestr) local file = io.open("C:/Users/MissionEntry——test.lua","w") --这里会创建一个新的文件MissionEntry——test.lua assert(file) file:write("cha = {}\n") file:write("cha.MissionEntry = ") file:write("{") file:write("\n") for i = 3,#linestr,1 do -- 一行中,每一列的内容 local content = split(linestr[i],") --以标题作为索引,保存每一列的内容,取值的时候这样取:arrs[1].Title arrs[ID] = {} file:write(" ") file:write("[") file:write(ID) file:write("]={") for j=1,1 do arrs[ID][Titles[j]] = content[j] file:write(Titles[j]) file:write("=") if type(content[j]) == "number" then file:write(content[j]) end if type(content[j]) == "string" then if tonumber(content[j]) then --这里是判断数字,如果为真,就写数字 file:write(content[j]) else file:write(string.format("%q",content[j])) --如果不是数字,就写带有双引号的字符串 end end if j ~= #content then --这里可以判断是最后一个就要写“}” file:write(",") else file:write("}") end end if i ~= #linestr then --这里可以判断是最后一个就要写"",也就是空字符串 file:write(",") else file:write("") end file:write("\n") file:write("\n") ID = ID + 1 end file:write("}") file:close() return arrsendlocal function main() local csvConfig = loadCsvfile("C:/Users/MissionEntry.csv")endmain() 上面的一段代码是去读一个MissionEntry.csv文件,也就是下面的图片 执行了上面这段lua代码之后,就会生成一个MissionEntry——test.lua文件,这个文件是你自己命名的,打开这个文件就是下面这段内容了
然后我们在别的lua文件引用的时候,就用这段代码去拿
Summary = require ("MissionEntry") --读取文件,这是文件的路径Summary.MissionEntry[1].Index 这样就方便很多了,执行lua代码,我是用这个编辑器的,LUA编辑调试器
注:第一次写博客,写的不好,还请见谅,也欢迎各位大神指导 总结
以上是内存溢出为你收集整理的cocos2dx lua解析csv成lua配置文件,方便程序调用全部内容,希望文章能够帮你解决cocos2dx lua解析csv成lua配置文件,方便程序调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)