Example #1
0
        public static void LoadCsv(this ILanguageModule module, string path, bool rewrite = true)
        {
            var dw    = DataTableTool.CreateReader(new StreamReader(path, Encoding.UTF8), new DataRow(), new DataExplainer());
            var pairs = dw.Get <LanPair>();

            module.Load(pairs, rewrite);
        }
Example #2
0
        //ICsvRow 需要根据具体情况改写一下分离字符串
        //ICsvExplainer 基本不用改
        //读取时候 具体的类型需要有一个公共的无参数构造函数,否则ICsvExplainer 需要改动
        void Read()
        {
            var r =
                DataTableTool.CreateReader(new System.IO.StreamReader(path, System.Text.Encoding.UTF8),
                                           new DataRow(),
                                           new DataExplainer());
            var cc = r.Get <Man>();

            foreach (var c in cc)
            {
                Log.L(string.Format("Age {0}   Sex  {1}  Name   {2}", c.age, c.sex, c.Name));
            }
            r.Dispose();
        }
Example #3
0
        /// <summary>
        /// 对象的反序列化操作
        /// </summary>
        void Read()
        {
            Log.L("");
            Log.L("开始从本地反序列化出对象,注意分离符要与写入时一致:");
            var r =
                DataTableTool.CreateReader(new System.IO.StreamReader(path, System.Text.Encoding.UTF8),
                                           new DataRow(),
                                           new DataExplainer());
            var cc = r.Get <HuMan>();

            Log.L("读取出的列表对象的内容为:\n");
            Log.L("Age\tSex\tName\theight\twidth");
            foreach (var c in cc)
            {
                Log.L($"{c.age}\t{c.sex}\t{c.Name}\t{c.heigth}\t{c.width}");
            }
            r.Dispose();

            Log.L("");
            Log.L("由于height标记了DataReadColumnIndex(0)这个Attribute所以读的是age列的数据");
            Log.L("width标记了DataIgnore所以没有被写入文件(即使文件里有也不会读),所以都是0");
        }
Example #4
0
        /// <summary>
        /// 对象的序列化操作
        /// </summary>
        void Write()
        {
            Log.L("类中对字段添加Attribute可以实现一系列操作:");
            Log.L("DataColumnName\t\t将对应标题设置为相应的字符串");
            Log.L("DataIgnore\t\t序列化和反序列化时都忽略此项");
            Log.L("DataReadColumnIndex\t读取时选择读取对应索引列的数据\n");
            Log.L("开始将列表对象序列化到本地:");
            Log.L("生成一个列表对象,并序列化到本地csv文件中");

            List <HuMan> cs = new List <HuMan>()
            {
                new HuMan()
                {
                    age = 1, sex = "m", Name = "xm", heigth = 0
                },
                new HuMan()
                {
                    age = 2, sex = "m1", Name = "xm1", heigth = 0
                },
                new HuMan()
                {
                    age = 3, sex = "m2", Name = "xm2", heigth = 0
                },
            };
            var w = DataTableTool.CreateWriter(new System.IO.StreamWriter(path, false),
                                               new DataRow(),
                                               new DataExplainer()); //这里可以设置分离符

            //dot指的是逗号替换的值,quotes是引号替换的值
            //分离符主要用于将带有引号和逗号的值隔离出来,一般选用不常用的字符
            w.Write(cs);
            w.Dispose();
            Log.L("写入完成");
            //非windows系统请注释下面这一句,因为我没体验过其它系统打开文件的方法
            System.Diagnostics.Process.Start("notepad", path);  //用记事本打开写入的文件
        }
Example #5
0
        void Write()
        {
            List <Man> cs = new List <Man>()
            {
                new Man()
                {
                    age = 1, sex = "m", Name = "xm"
                },
                new Man()
                {
                    age = 2, sex = "m1", Name = "xm1"
                },
                new Man()
                {
                    age = 3, sex = "m2", Name = "xm2"
                },
            };
            var w = DataTableTool.CreateWriter(new System.IO.StreamWriter(path, false),
                                               new DataRow(),
                                               new DataExplainer());

            w.Write(cs);
            w.Dispose();
        }
Example #6
0
        public static List <string> GetSqlList <T>(string conn, List <T> list, string tablename)
        {
            var headdatatable = DataTableTool.GetDataTableByClass(list);

            return(DataTableTool.DataTableToInsertSql(headdatatable, tablename));
        }
Example #7
0
    static void OpenWindow()
    {
        DataTableTool tool = GetWindow <DataTableTool>();

        tool.titleContent = new GUIContent("导出数据表代码");
    }