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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 16:30:57

cocos2d-x(quick-lua)读取csv文件的相关文章

Cocos2d-x Lua 读取Csv文件,更方便的使用数据

我的书上或者是我曾经出售的源码里,都有Csv文件的影子. 也许是先入为主吧,我工作那会用的最久的配置文件就是Csv,所以我在很多游戏里都会情不自禁地优先选择它. Csv文件,格式很简单,就是一行一条数据,字段之间用逗号分隔,策划也可以方便地使用Excel进行编辑. Csv格式的文件,解析起来也很简单,所以自己动手写写很快~(小若:我就喜欢拿来主义,你怎么着) 最近在用Lua写游戏,对于技能.怪物等配置,我还是选择用Csv~ 不得不说,Lua等脚本语言,在某些方面是C++没法比的,这次我就用Csv

Lua读取CSV文件到table中

创建Lua函数载入CSV文件并保存到表中的函数: function GetLines(fileName) indx = 0 myLines ={} for line in io.line(string.format("%s%s", "c:/lua_scripts/",filename)) do indx = indx + 1 myLines[indx] = line end return indx, myLines --returns number of lines

sparkR读取csv文件

sparkR读取csv文件 The general method for creating SparkDataFrames from data sources is read.df. This method takes in the path for the file to load and the type of data source, and the currently active SparkSession will be used automatically. SparkR suppo

php读取csv文件类

php处理csv文件类: http://www.php100.com/cover/php/540.html <?php define("CSV_Start", 0); define("CSV_Quoted", 1); define("CSV_Quoted2", 2); define("CSV_Unquoted", 3); function readCSV($fh, $len, $delimiter = ',', $enc

读取csv文件,写入oracle数据库

/* * @(#)DataParse.java 2014年4月28日 */ package com.yihaodian.sa.doData; import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.sql.Connection;import java.

用程序读取CSV文件的方法

CSV全称 Comma Separated values,是一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件.用Excel或者Numbers都可以导出CSV格式的数据. CSV文件的规则 0 开头是不留空,以行为单位.1 可含或不含列名,含列名则居文件第一行. 2 一行数据不垮行,无空行. 3 以半角符号,作分隔符,列为空也要表达其存在. 4 列内容如存在,,则用""包含起来. 5 列内容如存在""则用""""包

PHP读取csv文件的内容

一次性读取csv文件内所有行的数据 <?php  $file = fopen('windows_2011_s.csv','r');  while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容 //print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可 $goods_list[] = $data;  } //print_r($goods_list); /* foreach ($goods_list as $arr){     

java读取csv文件

最近用到读取csv文件,以下是源码,读取csv文件,转化为一个String类型的list对象,其中对中午进行了处理,否则会出现乱码,filepath为csv文件的路径 /** * 读取csv文件 */ public static List<String> readCsv(String filepath){ List<String> list = new ArrayList<String>(); String inString = ""; try{ C

jmeter请求参数中文乱码及无法读取CSV文件解决办法

解决办法:参考http://blog.csdn.net/u012167045/article/details/70868306 版本:2.6 我是修改请求http请中的编码为Content encoding :utf-8 就正常了. 无法读取CSV文件: 可能是windows下路径有问题,在CSV Data Set Config 中filename修改为:E:\\edulogin.csv

python之小应用:读取csv文件并处理01数据串

目的:读取csv文件内容,把0和1的数据串取出来,统计出现1的连续次数和各次数出现的频率次数 先读取csv文件内容: import csv def csv_read(file): list = [] csv_reader = csv.reader(file) for id, data, *args in csv_reader: #跳过表头 if id == " ": continue #print(id, data) list.append(data) return list 再写处理