Unity_解析表格

来源:互联网 发布:网络报警平台或中心 编辑:程序博客网 时间:2024/06/06 02:03
//用来存储数据的数组
string[ ][ ] _ArrayList;
//单例,用来在另一个脚本中调用
 public static Data_Csv intense;
void Awake()
{
    //单例赋值
     intance=this; 
      //得到表格——文本类型  一定在Resources文件下,typeof是文件类型为TextAsset   
     TextAsset _TestAsset=Resources.Load(“Data/MyExcilData”,typeof(TextAsset))as TextAsset;
     //将得到的文本按换行符分割开,然后赋值给linearray 【0】代表从第一个开始换行开始截取.存储每一行的内容,数组长度就为多少
      string[ ] linearray=_TextAsset.text.Slipt(“\r”[0]);
       //创建二维数组  
       _ArrayList=new string[linearray.length][ ];
        //把数据放进二维数组里
        for(int i=0;i<linearray.length;i++)
        {
            _ArrayList[i]=linearray[i].Slipt(‘,');
        } 
}
//根据ID和name得到数据 返回值为 想得到的数据,ID为表格里面的ID ,name为列
public float GetDataByIdAndName(int ID,string name)
{
    //判断存储数据的数组是否为空
    if(_ArrayList.Length<=0)
      {
            return float.Parse(“");
          }
    //行
    int row=_ArrayList.Length;
    //列
    int col=_ArrayList[0].Length;
    //遍历每行
    for(int i=0;i<row;i++)
    {
        //格式化ID,在ID前加换行符,因为表格换行的时候,上一行的最后,和这一行的开始会有一个换行符
        string strID=string.Format(“\n{0}”,ID);
        //判断数组里的ID是否等于传进的ID
        if(_arrayList[i]==strID)
        {
            //遍历每列
            for(int j=1;j<col;j++)
            {
                //如果第一行的列名有和传进的name相同的话
                if(_ArrayList[0][j]==name)
                    {    
                        //返回这个行列定位的数
                        return float.Parse(_ArrayList[i][j]);
                        }
                }
            }
    }
return float.Parse(“");
}


调用方法

print(Data_Csv.intance.GetDataByIdAndName(3,”要查询的东西")); 
0 0
原创粉丝点击