CSV文件读取

12 篇文章 0 订阅

csv文件很适合于程序和策划之间的配合,csv文件可以直接由Excel导出,策划在Excel中更改后导出csv,程序可以在不做任何修改的情况下做到更改游戏内容。

1.注意点

这个简单的文件读取类需要传入一个string初始化,可以直接用File.ReadAllText(文件路径),获取,如果是在Unity中并且放在Resources文件夹下的话,打包后这个文件夹就没了,直接传入文件路径无法获取,可以用

(Resources.Load(路径) as TextAsset).text;

2.CSVReader

 代码很简单,使用方式和sql类似,ReadLine()读取一条数据,其他几种GetXXX方法用于获取特定数据

using System.Collections;
using System.Collections.Generic;

/// <summary>
/// CSV文件读取
/// </summary>
public class CSVReader
{
    private int index;
    private Dictionary<string, string> dic;
    private string[] keys;
    private string[] lines;

    public CSVReader(string str)
    {
        index = 0;
        dic = new Dictionary<string, string>();
        // 注意这里不能用'\n'划分,用'\n'划分没行末尾依然会有一个回车符
        lines = str.Split('\r');
        keys = lines[0].Split(',');

        for (int i = 0; i < keys.Length; i++)
        {
            dic.Add(keys[i], "");
        }
    }

    public bool ReadLine()
    {
        index++;
        if (index >= lines.Length)
            return false;

        string[] line = lines[index].Split(',');
        for (int i = 0; i < keys.Length; i++)
        {
            dic[keys[i]] = line[i];
        }

        return true;
    }

    public string GetString(string name)
    {
        return dic[name];
    }

    public int GetInt32(string name)
    {
        return int.Parse(dic[name]);
    }

    public float GetFloat(string name)
    {
        return float.Parse(dic[name]);
    }

    public double GetDouble(string name)
    {
        return double.Parse(dic[name]);
    }

    public string[] GetStrArray(string name)
    {
        return dic[name].Split(':');
    }

    public int[] GetIntArray(string name)
    {
        string[] strs = dic[name].Split(':');
        int[] array = new int[strs.Length];
        for (int i = 0; i < strs.Length; i++)
        {
            array[i] = int.Parse(strs[i]);
        }
        return array;
    }
}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值