Lua处理游戏数据
2015-07-31 09:46
525 查看
-- 一些大型游戏需要对数据的整理,这样便于修改和统一管理还有修改。常见的有js和csv
-- csv 其实就是都好分割的简单文本结构,所以当作一般的文本来处理就好了,js需要解析,有现成的解析库
---------------------------- csv的处理
Lua对的io操作也是十分简单方便的,如果你用过c/c++ 那么感觉函数用起来很亲切.hh
就给一篇参考文档很详细:点击打开链接
-- csv 其实就是都好分割的简单文本结构,所以当作一般的文本来处理就好了,js需要解析,有现成的解析库
---------------------------- csv的处理
--[[ "tab1.csv" id name age class 1 liuxin 22 5 2 qiqi 23 1 3 qian 13 6 4 nannan 24 3 ]] --[[ function GetLine( filename ) index = 0 myLine = {} for line in io.lines(filename) do index = index + 1 myLine[index] = line end return index,myLine end -- function GetInfo( tab, id, n ) --通过索引id获取第n个元素 -- a,b = string.find(tab[id], ",") -- return "name" -- end -- a,b = GetLine("D:/LUA/tab1.csv") -- print("sum:",a) -- for i=1,#b do -- print(b[i]) -- end function GetValue( myString ) num = 0 value = {} if myString ~= nil then while string.find(myString, ",") ~= nil do i,j = string.find(myString, ",") --找到标记的起始位置和结尾位置 num = num + 1 value[num] = string.sub(myString, 1, j-1) myString = string.sub(myString, j+1, string.len(myString)) --剪切 “标记后面” 到 “字符窜末尾” end num = num + 1 value[num] = myString end return value end function GetValueByMark( myString, mark ) num = 0 value = {} if myString ~= nil then while string.find(myString, mark) ~= nil do i,j = string.find(myString, mark) num = num + 1 value[num] = string.sub(myString, 1, j-1) myString = string.sub(myString, j+1, string.len(myString)) end num = num + 1 value[num] = myString end return value end num,t = GetLine("D:/LUA/tab1.csv") tab = GetValueByMark(t[2],",") for i=1,#tab do print(tab[i]) end ]] -- 创建一个二维数组 一次性解析csv function LoadCsv( fileName ) num = 0 tab = {} for line in io.lines(fileName) do num = num + 1 curentLine = line --获取一行 --解析这一行信息 index = 0 t = {} -- 这里每次都会清空 while string.find(curentLine,",") do --循环遍历标记 index = index + 1 _begin,_end = string.find(curentLine,",") t[index] = string.sub(curentLine,1,_begin-1) curentLine = string.sub(curentLine,_end+1,string.len(curentLine)) end index = index + 1 --处理最后一个,因为每行末尾没有标记 t[index] = curentLine tab[num] = t end return num, tab end num,t = LoadCsv("D:/LUA/tab1.csv") for i=1,#t do for j=1,#t[i] do print(t[i],t[i][j]) end end
Lua对的io操作也是十分简单方便的,如果你用过c/c++ 那么感觉函数用起来很亲切.hh
就给一篇参考文档很详细:点击打开链接
相关文章推荐
- LUA脚本调用C场景,使用C API访问脚本构造的表
- lua math lib
- 【LintCode】Evaluate Reverse Polish Notation 逆波兰表达式求值
- Lua 学习备忘录3
- tengine安装lua
- Lua 学习备忘录2
- Lua脚本语言入门
- lua 的table排序
- CSLight研究院之和uLua的效率对比第一弹
- scikit-learn:3.5. Validation curves: plotting scores to evaluate models
- lua 文件读写
- 【转】Lua脚本语法说明简介
- lua os.date()参数
- Install and Evaluation of Yahoo's Kafka Manager
- [转]使用 C 编写 Lua 模块
- Lua 学习备忘录1
- Lua 资源热更新
- Lua 弱引用table
- Lua的面向对象——多重继承、私密性
- Lua的面向对象——类和继承