zoukankan      html  css  js  c++  java
  • cocos2d-x(quick-lua)读取csv文件

    一、准备一份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++简单多了。好了,就到这里!


  • 相关阅读:
    ubuntu 启动 卡死在 clean ... file ... blocks
    realsense opencv example 运行时无显示退出
    realsense example 最简单编译
    python内置方法
    接口自动化测试框架
    git使用问题
    自动化测试工具原理
    四层协议网络传输
    字符串反转
    排除链接数性能瓶颈
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5228434.html
Copyright © 2011-2022 走看看