Esempio n. 1
0
        public string ToByteWrite(string tab)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(tab + tab + tab + CodeGeneratorHelperE.ByteWtrite(prop_type, prop_name));
            return(sb.ToString());
        }
Esempio n. 2
0
        public string ToLocalRead(string tab, string data)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(tab + tab + tab + CodeGeneratorHelperE.LocalRead(prop_type, prop_name, data));
            return(sb.ToString());
        }
Esempio n. 3
0
        public string ToDes(string tab)
        {
            StringBuilder sb = new StringBuilder();

            CodeGeneratorHelperE.AppendComment(tab, sb, comment);
            sb.AppendLine(tab + string.Format("public {0} {1};", prop_type, prop_name));
            return(sb.ToString());
        }
Esempio n. 4
0
        // 通过信息形成文本
        public string ToDes()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("using System.Collections.Generic;");
            sb.AppendLine("using System.IO;");
            string tab = "\t";

            // 1.空间名
            sb.AppendLine(CodeGeneratorConstE.NAMESPACE);
            sb.AppendLine("{");
            // 2.注释
            CodeGeneratorHelperE.AppendComment(tab, sb, comment);

            // 3.类名
            sb.AppendLine(tab + "public class " + class_name + " : BaseCsv");
            sb.AppendLine(tab + "{");
            // 4.属性
            int prop_length = properties.Count;

            for (int i = 0; i < prop_length; i++)
            {
                sb.AppendLine(properties[i].ToDes(tab + tab));
            }

            sb.AppendLine("");
            // 5.属性Local读取
            {
                sb.AppendLine(tab + tab + "//属性Local读取");
                sb.AppendLine(tab + tab + "public void ToLocalRead(List<string> contents)");
                sb.AppendLine(tab + tab + "{");
                for (int i = 0; i < prop_length; i++)
                {
                    sb.AppendLine(properties[i].ToLocalRead(tab, "contents[" + i + "]"));
                }
                sb.AppendLine(tab + tab + "}");
            }
            sb.AppendLine("");
            //6.属性Byte读取
            {
                sb.AppendLine(tab + tab + "//属性Byte读取");
                sb.AppendLine(tab + tab + "public void ToByteRead(BinaryReader br)");
                sb.AppendLine(tab + tab + "{");
                for (int i = 0; i < prop_length; i++)
                {
                    sb.AppendLine(properties[i].ToByteRead(tab));
                }
                sb.AppendLine(tab + tab + "}");
            }
            sb.AppendLine("");
            //7.属性Byte写入
            {
                sb.AppendLine(tab + tab + "//属性Byte写入");
                sb.AppendLine(tab + tab + "public void ToByteWrite(BinaryWriter bw)");
                sb.AppendLine(tab + tab + "{");
                for (int i = 0; i < prop_length; i++)
                {
                    sb.AppendLine(properties[i].ToByteWrite(tab));
                }
                sb.AppendLine(tab + tab + "}");
            }

            // ToLocalWrite
            {
                sb.AppendLine(tab + tab + "public string ToLocalWrite()");
                sb.AppendLine(tab + tab + "{");
                sb.Append(tab + tab + tab + "return ");
                for (int i = 0; i < prop_length; i++)
                {
                    if (i == 0)
                    {
                        sb.AppendLine(properties[i].ToLocalWrite("") + "+\", \"+");
                    }
                    else if (i == prop_length - 1)
                    {
                        sb.AppendLine(tab + tab + tab + tab + properties[i].ToLocalWrite("") + ";");
                    }
                    else
                    {
                        sb.AppendLine(properties[i].ToLocalWrite(tab) + "+\", \"+");
                    }
                }
                sb.AppendLine(tab + tab + "}");
            }
            sb.AppendLine(tab + "}");
            sb.AppendLine("}");
            sb.AppendLine(string.Empty);
            return(sb.ToString());
        }
Esempio n. 5
0
        public static string CreateClassManager(Dictionary <string, BaseCsvInfo> csv_map)
        {
            List <BaseCsvInfo> csv_infos = new List <BaseCsvInfo>(csv_map.Values);

            sb.Remove(0, sb.Length);
            int length;

            // using
            CodeGeneratorHelperE.AppendLine(sb, 0, "using System;");
            CodeGeneratorHelperE.AppendLine(sb, 0, "using System.Collections.Generic;");
            CodeGeneratorHelperE.AppendLine(sb, 0, "using System.IO;");
            CodeGeneratorHelperE.AppendLine(sb, 0, "using Summer;");
            // 类名
            CodeGeneratorHelperE.AppendLine(sb, 0, "public class " + CodeGeneratorConstE.config_manager);
            CodeGeneratorHelperE.AppendLine(sb, 0, "{");
            //CodeGeneratorHelperE.AppendLine(sb, 1, "public static {0} Instance = new {0}();", CodeGeneratorConstE.config_manager);

            {
                // 属性

                /*length = csv_infos.Count;
                 * for (int i = 0; i < length; i++)
                 * {
                 *  CodeGeneratorHelperE.AppendLine(sb, 1, "public Dictionary<int, {0}> {1} = new Dictionary<int, {0}>();", csv_infos[i].class_name, csv_infos[i].class_name.ToLower());
                 * }*/
            }

            CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty);
            // void ReadLocalConfig
            {
                CodeGeneratorHelperE.AppendLine(sb, 1, "public static void ReadLocalConfig()");
                CodeGeneratorHelperE.AppendLine(sb, 1, "{");
                CodeGeneratorHelperE.AppendLine(sb, 1, "StaticCnf.Clear();");
                CodeGeneratorHelperE.AppendLine(sb, 2, "int length = 0;");
                CodeGeneratorHelperE.AppendLine(sb, 2, "Dictionary<string, BaseCsvInfo> csv_infos = CnfHelper.LoadFileContent();");
                {
                    CodeGeneratorHelperE.AppendLine(sb, 2, "BaseCsvInfo info = null;");
                    length = csv_infos.Count;
                    for (int i = 0; i < length; i++)
                    {
                        CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty);
                        string key = csv_infos[i]._className;
                        CodeGeneratorHelperE.AppendLine(sb, 2, "info = csv_infos[\"{0}\"];", key);
                        CodeGeneratorHelperE.AppendLine(sb, 2, "Dictionary<int, {0}> {1} = new Dictionary<int, {0}>();", key, key.ToLower());
                        //CodeGeneratorHelperE.AppendLine(sb, 2, "{0}.Clear();", key.ToLower());
                        CodeGeneratorHelperE.AppendLine(sb, 2, "length = info.datas.Count;");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "for (int i = 0; i < length; i++)");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "{");
                        CodeGeneratorHelperE.AppendLine(sb, 3, "{0} tmp = new {0}();", key);
                        CodeGeneratorHelperE.AppendLine(sb, 3, "tmp.ToLocalRead(info.datas[i]);");
                        CodeGeneratorHelperE.AppendLine(sb, 3, "{0}.Add(tmp.id, tmp); ", key.ToLower());
                        CodeGeneratorHelperE.AppendLine(sb, 2, "}");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "StaticCnf.Add({0});", key.ToLower());
                    }
                }
                CodeGeneratorHelperE.AppendLine(sb, 1, "}");
            }

            // void ReadByteConfig
            {
                CodeGeneratorHelperE.AppendLine(sb, 1, "public static void ReadByteConfig()");
                CodeGeneratorHelperE.AppendLine(sb, 1, "{");
                CodeGeneratorHelperE.AppendLine(sb, 1, "StaticCnf.Clear();");
                {
                    CodeGeneratorHelperE.AppendLine(sb, 2, "byte[] bytes = ResManager.instance.LoadByte(CnfConst.DATA_BYTE_NAME);");
                    CodeGeneratorHelperE.AppendLine(sb, 2, "MemoryStream ms = new MemoryStream(bytes);");
                    CodeGeneratorHelperE.AppendLine(sb, 2, "BinaryReader br = new BinaryReader(ms);");
                    CodeGeneratorHelperE.AppendLine(sb, 2, "int length = 0;");
                    length = csv_infos.Count;

                    for (int i = 0; i < length; i++)
                    {
                        CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty);
                        string key = csv_infos[i]._className;
                        CodeGeneratorHelperE.AppendLine(sb, 2, "length = br.ReadInt32();");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "Dictionary<int, {0}> {1} = new Dictionary<int, {0}>();", key, key.ToLower());
                        //CodeGeneratorHelperE.AppendLine(sb, 2, "{0}.Clear();", key.ToLower());
                        CodeGeneratorHelperE.AppendLine(sb, 2, "for (int i = 0; i < length; i++)");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "{");
                        CodeGeneratorHelperE.AppendLine(sb, 3, "{0} tmp = new {0}();", key);
                        CodeGeneratorHelperE.AppendLine(sb, 3, "tmp.ToByteRead(br);", i);
                        CodeGeneratorHelperE.AppendLine(sb, 3, "{0}.Add(tmp.id, tmp); ", key.ToLower());
                        CodeGeneratorHelperE.AppendLine(sb, 2, "}");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "StaticCnf.Add({0});", key.ToLower());
                    }

                    CodeGeneratorHelperE.AppendLine(sb, 2, "ms.Flush();");
                    CodeGeneratorHelperE.AppendLine(sb, 2, "ms.Close();");
                    CodeGeneratorHelperE.AppendLine(sb, 2, "br.Close();");
                    CodeGeneratorHelperE.AppendLine(sb, 2, "ms.Dispose();");
                }
                CodeGeneratorHelperE.AppendLine(sb, 1, "}");
            }

            // void WriteByteConfig
            {
                CodeGeneratorHelperE.AppendLine(sb, 1, "public static void WriteByteConfig()");
                CodeGeneratorHelperE.AppendLine(sb, 1, "{");
                CodeGeneratorHelperE.AppendLine(sb, 2, "FileInfo file_info = new FileInfo(CnfConst.data_byte_path);");
                CodeGeneratorHelperE.AppendLine(sb, 3, "if (file_info.Exists)");
                CodeGeneratorHelperE.AppendLine(sb, 2, "file_info.Delete();");
                CodeGeneratorHelperE.AppendLine(sb, 2, "FileStream file_stream = file_info.Create();");
                CodeGeneratorHelperE.AppendLine(sb, 2, "BinaryWriter bw = new BinaryWriter(file_stream);");
                {
                    CodeGeneratorHelperE.AppendLine(sb, 2, "int length = 0;");
                    length = csv_infos.Count;
                    for (int i = 0; i < length; i++)
                    {
                        CodeGeneratorHelperE.AppendLine(sb, 0, string.Empty);

                        string key = csv_infos[i]._className;
                        CodeGeneratorHelperE.AppendLine(sb, 2, "List<{0}> tmp_{1} = new List<{0}>(StaticCnf.FindMap<{0}>().Values);", key, key.ToLower());
                        CodeGeneratorHelperE.AppendLine(sb, 2, "length = tmp_{0}.Count;", key.ToLower());
                        CodeGeneratorHelperE.AppendLine(sb, 2, "bw.Write(length);");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "for (int i = 0; i < length; i++)");
                        CodeGeneratorHelperE.AppendLine(sb, 2, "{");
                        CodeGeneratorHelperE.AppendLine(sb, 3, "{0} data = tmp_{1}[i];", key, key.ToLower());
                        CodeGeneratorHelperE.AppendLine(sb, 3, "data.ToByteWrite(bw);", i);
                        CodeGeneratorHelperE.AppendLine(sb, 2, "}");
                    }
                }

                CodeGeneratorHelperE.AppendLine(sb, 2, "file_stream.Flush();");
                CodeGeneratorHelperE.AppendLine(sb, 2, "file_stream.Close();");

                CodeGeneratorHelperE.AppendLine(sb, 2, "bw.Close();");
                CodeGeneratorHelperE.AppendLine(sb, 2, "file_stream.Dispose();");
                CodeGeneratorHelperE.AppendLine(sb, 1, "}");
            }
            CodeGeneratorHelperE.AppendLine(sb, 0, "}");
            return(sb.ToString());
        }