예제 #1
0
        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());
        }
예제 #2
0
        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));
                }
            }
        }
예제 #3
0
        /// <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);
            }
        }