展会信息港展会大全

cocos2d-x(quick-lua)读取csv文件
来源:互联网   发布日期:2015-09-28 15:12:03   浏览:2068次  

导读: 一、准备一份csv文件 ID,Name,Des,Model ID,名字,描述,图片模型 1,广告,www.benmutou.com,csv.png 2,否认,呵呵,广告什么的,我才不会加,...

一、准备一份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, '

');

--[[

从第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++简单多了。好了,就到这里!

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港