CSVUtils.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using UnityEngine;
  2. using System.IO;
  3. using System.Text;
  4. namespace WildAttack
  5. {
  6. /// <summary>
  7. /// CSV读表工具类
  8. /// </summary>
  9. public class CSVUtils : Singleton<CSVUtils>
  10. {
  11. #region Members
  12. //利用二维数组存储对应行和列中的字符串
  13. public string[][] m_ArrayData;
  14. #endregion
  15. #region Functions
  16. public string[] LoadFile(string path, string fileName)
  17. {
  18. //读取新文件前保证之前的数据为空
  19. m_ArrayData = new string[0][];
  20. string fillPath = path + "/" + fileName;
  21. //解析每一行的数据
  22. string[] lineArray;
  23. try
  24. {
  25. //注意编码方式,这里用的是Windows系统自定义的编码方式Encoding.Default,其实也就是GB2312(简体中文),编码不对应的话解析出来很可能是乱码
  26. lineArray = File.ReadAllLines(fillPath, Encoding.GetEncoding("utf-8"));
  27. //Debug.Log("file finded!");
  28. }
  29. catch
  30. {
  31. //Debug.Log("file not find!");
  32. return null;
  33. }
  34. return lineArray;
  35. }
  36. // 下面两个API改协程实现 pc可直接调用 android端用协程
  37. //public void SaveData(string[] lineArr)
  38. //{
  39. // m_ArrayData = new string[lineArr.Length][];
  40. // for (int i = 0; i < lineArr.Length; i++)
  41. // {
  42. // //CSV格式的文件采用英文逗号作为分隔符
  43. // m_ArrayData[i] = lineArr[i].Split(',');
  44. // }
  45. //}
  46. //外部调用的取值接口,需要先LoadFile()后才能返回正确的数据
  47. //public string GetVaule(int row, int col)
  48. //{
  49. // return m_ArrayData[row][col];
  50. //}
  51. #endregion
  52. }
  53. }