/// <summary> /// 初始读取配置 /// </summary> /// <param name="root">所有CSV表格根目录</param> /// <param name="path">配置表格名称</param> /// <param name="callback">设置后回调函数</param> public static void Ini(string root, string path, CallBack callback = null) { if (_ini == false) { _ini = true; onFinish = callback; pathCsv = root + path; pathRoot = root; //加载配置表格数据 LoadManager.Load(pathCsv, LoadCsvConfig); } }
/// <summary> /// 读取所有表格 /// 根据表的配置信息读取相应的表格 /// _reader保存所有表读取出来的CsvReader信息 /// </summary> private static void LoadCsvs() { //便利所有表地址 foreach (string k in _csvFileUrls.Keys) { CsvReader reader = new CsvReader(); //地址 string txt = LoadManager.GetString(_csvFileUrls[k]); //解析 txt = Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(txt)); //二次解析 reader.Read(txt); //保持引用 _reader.Add(k, reader); } //完成CallBack if (onFinish != null) { onFinish(); } }
/// <summary> /// 先把配置的表格数据读取 /// 拿到读取的所有表名给_csvFileUrls赋值 /// LoadManager.Load(list.ToArray(), LoadCsvs)读取全部表格 /// </summary> public static void LoadCsvConfig() { //获取加载的配置表格的数据 string text = LoadManager.GetString(pathCsv); text = text.Replace("\r", ""); //此时数据格式 //arr[i]配置表格的一行数据 string[] arr = text.Split('\n'); //解析数据 List <string> list = new List <string>(); //去掉读取到的表头 for (int i = 1; i < arr.Length; i++) { if (!string.IsNullOrEmpty(arr[i])) { //此时数据格式 //temp[i]配置表格的某一行每个单元格数据 string[] temp = arr[i].Split(','); if (temp != null && temp.Length >= 1 && !string.IsNullOrEmpty(temp[1])) { //路径 + 表名 string url = pathRoot + temp[1]; if (_csvFileUrls.ContainsKey(temp[1])) { Debug.Log(arr[i]); Debug.Log(temp[1]); } //去掉读取到的ID值 //所有表路径赋值 _csvFileUrls.Add(temp[1], url); //准备其他表的读取 list.Add(url); } } } //加载非配置表格数据 LoadManager.Load(list.ToArray(), LoadCsvs); }