cocos2d-x(quick-lua)读取csv文件
2015-07-15 18:36
489 查看
一、准备一份csv文件
ID,Name,Des,Model
ID,名字,描述,图片模型
1,广告,www.benmutou.com,csv.png
2,否认,呵呵,广告什么的,我才不会加,good.png
二、字符串分割函数
function split(str, reps)
local resultStrsList = {};
string.gsub(str, '[^' .. reps ..']+', function(w) table.insert(resultStrsList, w) end );
return resultStrsList;
end
三、解析csv函数
function loadCsvFile(filePath)
-- 读取文件
local data = cc.FileUtils:getInstance():getStringFromFile(filePath);
-- 按行划分
local lineStr = split(data, '\n\r');
--[[
从第3行开始保存(第一行是标题,第二行是注释,后面的行才是内容)
用二维数组保存:arr[ID][属性标题字符串]
]]
local titles = split(lineStr[1], ",");
local ID = 1;
local arrs = {};
for i = 3, #lineStr, 1 do
-- 一行中,每一列的内容
local content = split(lineStr[i], ",");
-- 以标题作为索引,保存每一列的内容,取值的时候这样取:arrs[1].Title
arrs[ID] = {};
for j = 1, #titles, 1 do
arrs[ID][titles[j]] = content[j];
end
ID = ID + 1;
end
return arrs;
end
这里把解析出来的数据存储在数组中了
四、测试代码
local function main()
local csvConfig = loadCsvFile("res/Mutou.Csv");
print(csvConfig[1].Name .. ":" .. csvConfig[1].Des);
print(csvConfig[2].Name .. ":" .. csvConfig[2].Des);
end
这样就能把csv文件的第一、二行的描述输出来。是不是比c++简单多了。好了,就到这里!
ID,Name,Des,Model
ID,名字,描述,图片模型
1,广告,www.benmutou.com,csv.png
2,否认,呵呵,广告什么的,我才不会加,good.png
二、字符串分割函数
function split(str, reps)
local resultStrsList = {};
string.gsub(str, '[^' .. reps ..']+', function(w) table.insert(resultStrsList, w) end );
return resultStrsList;
end
三、解析csv函数
function loadCsvFile(filePath)
-- 读取文件
local data = cc.FileUtils:getInstance():getStringFromFile(filePath);
-- 按行划分
local lineStr = split(data, '\n\r');
--[[
从第3行开始保存(第一行是标题,第二行是注释,后面的行才是内容)
用二维数组保存:arr[ID][属性标题字符串]
]]
local titles = split(lineStr[1], ",");
local ID = 1;
local arrs = {};
for i = 3, #lineStr, 1 do
-- 一行中,每一列的内容
local content = split(lineStr[i], ",");
-- 以标题作为索引,保存每一列的内容,取值的时候这样取:arrs[1].Title
arrs[ID] = {};
for j = 1, #titles, 1 do
arrs[ID][titles[j]] = content[j];
end
ID = ID + 1;
end
return arrs;
end
这里把解析出来的数据存储在数组中了
四、测试代码
local function main()
local csvConfig = loadCsvFile("res/Mutou.Csv");
print(csvConfig[1].Name .. ":" .. csvConfig[1].Des);
print(csvConfig[2].Name .. ":" .. csvConfig[2].Des);
end
这样就能把csv文件的第一、二行的描述输出来。是不是比c++简单多了。好了,就到这里!
相关文章推荐
- Quick-Cocos2d-x 3.3中常用的文件和函数(二)
- Quick-Cocos2d-x 3.3中常用的文件和函数(一)
- quick-cocos2d-x游戏开发——StateMachine状态机
- 关于cocos2dx观察者模式(CCNotificationCenter)
- Quick-Cocos2d-x数据存储之GameState
- Cocos code ide 1.0.0 RC0 使用教程
- Cocos code ide 常见问题
- cocos2d-x lua 学习笔记(1) -- 环境结构
- cocos2d 滚动背景 举 无限
- 使用Cocos2d-x 和粒子编辑器实现“天天爱消除”场景特效
- Cocos2d-x中Physics物理引擎碰撞检测,setCategoryBitmask,setContactTestBitmask,setCollisionBitmask
- cocos2dx使用tolua关于字符串处理的一个问题
- Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(三)
- Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(二)
- Cocos2d-Lua(Quick-Cocos2d-x)集成第三方SDK(一)
- cocos2dx中菜单menu 和 menuItem
- unity 3d还是cocos2dx哪个适合游戏?
- Cocos观察者设计模式和通报机制
- Mac在结构quick cocos2d-x编译环境
- 【独立开发者er Cocos2d-x实战 008】BMFont生成位图字体工具和Cocos2dx使用加载fnt文件