public void SaveOut(string path) { //--第一行是要取出的数据-- CsvStreamReader reader = CsvStreamReader.CreateReader(OutPutFile, Encoding.GetEncoding("UTF-8")); List <string> dataFilterList = new List <string>(); dataFilterList.Add(IDLabel); for (int i = 1; i <= reader.ColCount; i++) { string data = reader[1, i]; dataFilterList.Add(data); } List <InfoObject> table = new List <InfoObject>(); List <string> sectionList = LniUtils.ReadAllSection(FilePath); foreach (var section in sectionList) { List <string> datas = new List <string>(); foreach (var dataFilter in dataFilterList) { if (dataFilter == IDLabel) { datas.Add(section); } else { //引号会丢失...貌似没问题? string value = INIHelper.ReadString(section, dataFilter, "", FilePath); datas.Add(value); } //Console.WriteLine(value); } table.Add(new InfoObject(section, datas)); } StringBuilder csv = new StringBuilder(); foreach (var f in dataFilterList) { csv.Append(f); csv.Append(","); } csv = csv.Remove(csv.Length - 1, 1);//最后的逗号 csv.AppendLine(); foreach (var infoObject in table) { csv.AppendLine(infoObject.GetCsv()); } File.WriteAllText(path, csv.ToString()); }
public LniModifyData(string path, Encoding encod) { FilePath = path; CsvStreamReader reader = CsvStreamReader.CreateReader(FilePath, encod);//Encoding.GetEncoding("GB2312") for (int i = 1; i <= reader.RowCount; i++) { bool isIgonreLine = i == 1; if (isIgonreLine) { continue; } string[] srr = new string[reader.ColCount]; for (int j = 1; j <= reader.ColCount; j++) { srr[j - 1] = reader[i, j]; bool isIgnoreCol = j == 1; if (isIgnoreCol) { continue; } string section = srr[0]; //if (section == null) section = "error"; string modifyK = reader[1, j];//第一行 第j列 string modifyV = srr[j - 1]; List <LniObjectModify> modifies = null; if (!ObjModifyMap.TryGetValue(section, out modifies)) { modifies = new List <LniObjectModify>(); ObjModifyMap.Add(section, modifies); } if (string.IsNullOrEmpty(modifyK) || string.IsNullOrEmpty(modifyV)) { continue; } //Console.WriteLine(modifyK + "," + modifyV); modifies.Add(new LniObjectModify(modifyK, modifyV)); } } }
/// <summary> /// 反射调用 /// SLKManager.Init /// </summary> /// <param name="data"></param> public void Handler_DeSerialize(object data = null) { if (data == null) { //自动尝试找到file string fileName = typeof(T).Name; data = ExportHelper.GetPathFileName(fileName, ".csv"); if (!File.Exists(data.ToString())) { Console.WriteLine("Not Load : " + fileName); return; } } Console.WriteLine(data); IdMap.Clear(); reader = CsvStreamReader.CreateReader(data.ToString(), Encoding.UTF8); bool isTitleLine = true; for (int i = 1; i <= reader.RowCount; i++) { if (isTitleLine) { isTitleLine = false; continue; } string[] srr = new string[reader.ColCount]; for (int j = 1; j <= reader.ColCount; j++) { srr[j - 1] = reader[i, j]; } T t = SlkDataObjectFactory <T> .Create(); t.Slk_DeSerialize(srr); AddData(t); } }