diff --git a/.vs/ExcelTool/v15/.suo b/.vs/ExcelTool/v15/.suo index 0434b01..0d73996 100644 Binary files a/.vs/ExcelTool/v15/.suo and b/.vs/ExcelTool/v15/.suo differ diff --git a/.vs/ExcelTool/v15/Server/sqlite3/storage.ide b/.vs/ExcelTool/v15/Server/sqlite3/storage.ide index 571b6a4..3eb62a2 100644 Binary files a/.vs/ExcelTool/v15/Server/sqlite3/storage.ide and b/.vs/ExcelTool/v15/Server/sqlite3/storage.ide differ diff --git a/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-shm b/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-shm index d40854b..bd6c05f 100644 Binary files a/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-shm and b/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-shm differ diff --git a/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-wal b/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-wal index ad2ce38..2e7d34f 100644 Binary files a/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-wal and b/.vs/ExcelTool/v15/Server/sqlite3/storage.ide-wal differ diff --git a/ExcelTool/FileManager.cs b/ExcelTool/FileManager.cs index c1f1fca..1c5e71d 100644 --- a/ExcelTool/FileManager.cs +++ b/ExcelTool/FileManager.cs @@ -157,7 +157,7 @@ namespace ExcelTool } } } - else if (data.Item1.Equals("list")) + else if (data.Item1.Equals("list")) //List类型 { //[[1.2,3.4,5.6],[2.2,3.4,5.6],[3.2,3.4,5.6]] string str = data.Item2.ToString(); @@ -178,6 +178,60 @@ namespace ExcelTool } } } + else if (data.Item1.Contains("list<")) //泛型数组类型 + { + string str = data.Item2.ToString(); + if (string.IsNullOrEmpty(str)) + { + bw.Write(Convert.ToInt32(0)); + } + else + { + var numStrs = str.Split(','); + bw.Write(numStrs.Length); + var tempS = data.Item1.Substring(5); + var listType = tempS.Substring(0, tempS.Length - 1); + if (listType.Equals("int")) + { + for (int i = 0; i < numStrs.Length; i++) + { + bw.Write(Convert.ToInt32(numStrs[i])); + } + } + else if (listType.Equals("bool")) + { + for (int i = 0; i < numStrs.Length; i++) + { + bw.Write(Convert.ToBoolean(numStrs[i])); + } + } + else if (listType.Equals("float")) + { + for (int i = 0; i < numStrs.Length; i++) + { + bw.Write(Convert.ToSingle(numStrs[i])); + } + } + else if (listType.Equals("long")) + { + for (int i = 0; i < numStrs.Length; i++) + { + bw.Write(Convert.ToInt64(numStrs[i])); + } + } + else if (listType.Equals("string")) + { + for (int i = 0; i < numStrs.Length; i++) + { + bw.Write(Convert.ToString(numStrs[i])); + } + } + else + { + ConsoleHelper.WriteErrorLine("数组类型List,T不是支持的Int,Float,String这三种类型,需要扩展类型"); + } + } + } else { ConsoleHelper.WriteErrorLine($"写入二进制文件,数据类型{data.Item1}没有适配"); diff --git a/ExcelTool/Parser/GenModels.cs b/ExcelTool/Parser/GenModels.cs index 1de69a7..dbfc220 100644 --- a/ExcelTool/Parser/GenModels.cs +++ b/ExcelTool/Parser/GenModels.cs @@ -50,6 +50,35 @@ namespace ExcelTool { sb.Append(string.Format("\tpublic List> {0}", headers[i].FieldName)); } + else if (type.Contains("list<")) + { + var tempS = type.Substring(5); + var newType = tempS.Substring(0, tempS.Length - 1); + if (newType.Equals("int")) + { + sb.Append(string.Format("\tpublic List {0}", headers[i].FieldName)); + } + else if (newType.Equals("bool")) + { + sb.Append(string.Format("\tpublic List {0}", headers[i].FieldName)); + } + else if (newType.Equals("float")) + { + sb.Append(string.Format("\tpublic List {0}", headers[i].FieldName)); + } + else if (newType.Equals("long")) + { + sb.Append(string.Format("\tpublic List {0}", headers[i].FieldName)); + } + else if (newType.Equals("string")) + { + sb.Append(string.Format("\tpublic List {0}", headers[i].FieldName)); + } + else + { + ConsoleHelper.WriteErrorLine("数组类型List,T类型不支持"); + } + } else { sb.Append(string.Format("\tpublic {0} {1}", headers[i].FieldType.ToLower(), headers[i].FieldName)); @@ -116,6 +145,59 @@ namespace ExcelTool sb.Append($"\t\t\t{name} = null;\n"); sb.Append("\t\t}\n"); } + else if (type.Contains("list<")) + { + var tempS = type.Substring(5); + var listTType = tempS.Substring(0, tempS.Length - 1); + sb.Append($"\t\tvar {name}Count = reader.ReadInt32();\n"); + sb.Append($"\t\tif ({name}Count > 0)\n"); + sb.Append("\t\t{\n"); + if (listTType.Equals("int")) + { + sb.Append($"\t\t\t{name} = new List();\n"); + sb.Append($"\t\t\tfor (int i = 0; i < {name}Count; i++)\n"); + sb.Append("\t\t\t{\n"); + sb.Append($"\t\t\t\t{name}.Add(reader.ReadInt32());\n"); + } + else if (listTType.Equals("bool")) + { + sb.Append($"\t\t\t{name} = new List();\n"); + sb.Append($"\t\t\tfor (int i = 0; i < {name}Count; i++)\n"); + sb.Append("\t\t\t{\n"); + sb.Append($"\t\t\t\t{name}.Add(reader.ReadBoolean());\n"); + } + else if (listTType.Equals("float")) + { + sb.Append($"\t\t\t{name} = new List();\n"); + sb.Append($"\t\t\tfor (int i = 0; i < {name}Count; i++)\n"); + sb.Append("\t\t\t{\n"); + sb.Append($"\t\t\t\t{name}.Add(reader.ReadSingle());\n"); + } + else if (listTType.Equals("long")) + { + sb.Append($"\t\t\t{name} = new List();\n"); + sb.Append($"\t\t\tfor (int i = 0; i < {name}Count; i++)\n"); + sb.Append("\t\t\t{\n"); + sb.Append($"\t\t\t\t{name}.Add(reader.ReadInt64());\n"); + } + else if (listTType.Equals("string")) + { + sb.Append($"\t\t\t{name} = new List();\n"); + sb.Append($"\t\t\tfor (int i = 0; i < {name}Count; i++)\n"); + sb.Append("\t\t\t{\n"); + sb.Append($"\t\t\t\t{name}.Add(reader.ReadString());\n"); + } + else + { + ConsoleHelper.WriteErrorLine("数组泛型T不是指定类型"); + } + sb.Append("\t\t\t}\n"); + sb.Append("\t\t}\n"); + sb.Append("\t\telse\n"); + sb.Append("\t\t{\n"); + sb.Append($"\t\t\t{name} = null;\n"); + sb.Append("\t\t}\n"); + } else { ConsoleHelper.WriteErrorLine($"类型:{type}没有解析 {fileName}处理异常"); @@ -167,6 +249,47 @@ namespace ExcelTool sb.Append("\t\t\t}\n"); sb.Append("\t\t}\n"); } + else if (type.Contains("list<")) + { + var tempS = type.Substring(5); + var listTType = tempS.Substring(0, tempS.Length - 1); + sb.Append($"\t\tif ({name} == null || {name}.Count == 0)\n"); + sb.Append("\t\t{\n"); + sb.Append("\t\t\twriter.Write(0);\n"); + sb.Append("\t\t}\n"); + sb.Append("\t\telse\n"); + sb.Append("\t\t{\n"); + sb.Append($"\t\t\twriter.Write({name}.Count);\n"); + sb.Append($"\t\t\tfor (int i = 0; i < {name}.Count; i++)\n"); + sb.Append("\t\t\t{\n"); + sb.Append($"\t\t\t\twriter.Write({name}[i]);\n"); + sb.Append("\t\t\t}\n"); + sb.Append("\t\t}\n"); + //if (listTType.Equals("int")) + //{ + + //} + //else if (listTType.Equals("bool")) + //{ + + //} + //else if (listTType.Equals("float")) + //{ + + //} + //else if (listTType.Equals("long")) + //{ + + //} + //else if (listTType.Equals("string")) + //{ + + //} + //else + //{ + // ConsoleHelper.WriteErrorLine("数组泛型T不是指定类型"); + //} + } else { ConsoleHelper.WriteErrorLine($"类型:{type}没有解析 {fileName}处理异常"); diff --git a/ExcelTool/bin/Debug/ExcelTool.exe b/ExcelTool/bin/Debug/ExcelTool.exe index bf703cd..23bc9f9 100644 Binary files a/ExcelTool/bin/Debug/ExcelTool.exe and b/ExcelTool/bin/Debug/ExcelTool.exe differ diff --git a/ExcelTool/bin/Debug/ExcelTool.pdb b/ExcelTool/bin/Debug/ExcelTool.pdb index e851fdd..3a69b51 100644 Binary files a/ExcelTool/bin/Debug/ExcelTool.pdb and b/ExcelTool/bin/Debug/ExcelTool.pdb differ diff --git a/ExcelTool/bin/Debug/official_room.bytes b/ExcelTool/bin/Debug/official_room.bytes index fd1bb56..c41648e 100644 Binary files a/ExcelTool/bin/Debug/official_room.bytes and b/ExcelTool/bin/Debug/official_room.bytes differ diff --git a/ExcelTool/bin/Debug/official_room.cs b/ExcelTool/bin/Debug/official_room.cs index 8cc719f..a366a63 100644 --- a/ExcelTool/bin/Debug/official_room.cs +++ b/ExcelTool/bin/Debug/official_room.cs @@ -71,6 +71,10 @@ public partial class official_room : IBinarySerializable /// /// public List Offset { get; set; } + /// + /// + /// + public List IntList { get; set; } public void DeSerialize(BinaryReader reader) { @@ -113,6 +117,19 @@ public partial class official_room : IBinarySerializable { Offset = null; } + var IntListCount = reader.ReadInt32(); + if (IntListCount > 0) + { + IntList = new List(); + for (int i = 0; i < IntListCount; i++) + { + IntList.Add(reader.ReadInt32()); + } + } + else + { + IntList = null; + } } public void Serialize(BinaryWriter writer) @@ -154,6 +171,18 @@ public partial class official_room : IBinarySerializable writer.Write(Offset[i]); } } + if (IntList == null || IntList.Count == 0) + { + writer.Write(0); + } + else + { + writer.Write(IntList.Count); + for (int i = 0; i < IntList.Count; i++) + { + writer.Write(IntList[i]); + } + } } } diff --git a/ExcelTool/bin/Debug/official_room.csv b/ExcelTool/bin/Debug/official_room.csv index 1a59ec9..ef07c6b 100644 --- a/ExcelTool/bin/Debug/official_room.csv +++ b/ExcelTool/bin/Debug/official_room.csv @@ -1,17 +1,17 @@ -"int,Id","string,RoomOwner","string,Notes","string,RoomName","string,RoomBriefly","string,RoomDetails","string,BgPathId","string,ScenesId","string,Address","int,Recommend","int,SubLine","int,IsCanPackage","int,IsMute","Vector,BirthPosition","Vector,Offset" -,,ע(ƷԼע),Ĭ(óĬʾ),Ĭϳ(óĬʾļҪϢʾڹٷ),(óϸϢʾҳ),ͼ(ӦʾϵͼƬpathID·ϣ֧дΪһţֲ֧ʾ),ӦID(ӦעеijID),Ӧͼַ(ӦߵϵĵͼַӦľγȣǷҪͬʱPOIϣɳȷ),ʼƼ򣨷ʱƼȼȷʼʾλãԽͣȼԽߣŷƼ㷨仯,ﵽ÷ߣΪ0Ϊߣ,Ƿʹñڸ÷У˲ʹñ,ĬϾ,, +"int,Id","string,RoomOwner","string,Notes","string,RoomName","string,RoomBriefly","string,RoomDetails","string,BgPathId","string,ScenesId","string,Address","int,Recommend","int,SubLine","int,IsCanPackage","int,IsMute","Vector,BirthPosition","Vector,Offset","List,IntList" +,,ע(ƷԼע),Ĭ(óĬʾ),Ĭϳ(óĬʾļҪϢʾڹٷ),(óϸϢʾҳ),ͼ(ӦʾϵͼƬpathID·ϣ֧дΪһţֲ֧ʾ),ӦID(ӦעеijID),Ӧͼַ(ӦߵϵĵͼַӦľγȣǷҪͬʱPOIϣɳȷ),ʼƼ򣨷ʱƼȼȷʼʾλãԽͣȼԽߣŷƼ㷨仯,ﵽ÷ߣΪ0Ϊߣ,Ƿʹñڸ÷У˲ʹñ,ĬϾ,,, 1,TcjF8790673,ݷ1Ż᳡,ݷ1Ż᳡,᳡ʵϻ᳡,һһȵĸַٶٿֻͨ᳡ʵʵϵ飬ϲʢᣬַʽǰʵ᳡ֳûл,"{[""path1"":"""",""path2"":""""]}",1001,"{ ""lat"":119.299236, ""lon"":26.081825, ""name"":""ιʾ"" -}",0,100,0,1,"[-497.225,17.536,-107.682]","[0,0,0]" +}",0,100,0,1,"[-497.225,17.536,-107.682]","[0,0,0]","1,2,3,4,5" 2,TcjF8790673,101,101,D,Dң20,"{[""path1"":"""",""path2"":""""]}",1002,"{ ""lat"":121.623633, ""lon"":31.255969, ""name"":""D"" -}",0,100,0,1,"[-14243.48, 15.88, -3211.575]","[-14241.71,17.02,-3207.24]" +}",0,100,0,1,"[-14243.48, 15.88, -3211.575]","[-14241.71,17.02,-3207.24]", 3,TcjF8790673,̲㳡 ,̲㳡,ϺҪĵر곡֮һ,̲ϺϺҪĵر֮һȫ1.5Ӱ·ݺϵ׶ţ漴ֽǾϺڡóļеء̲·ӵʮറʷģҲոʽģִʽģʶΪȺϺ̲ͿʼΪϺйĽڼó[1]ҲΪ֡,"{[""path1"":"""",""path2"":""""]}",1003,"{ ""lat"":121.492156, ""lon"":31.233462, ""name"":""̲"" -}",1,100,0,1,"[-1631.85,13.904,-888.18]","[-1490,0,-1370]" +}",1,100,0,1,"[-1631.85,13.904,-888.18]","[-1490,0,-1370]", diff --git a/ExcelTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ExcelTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 3f151ce..a934164 100644 Binary files a/ExcelTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/ExcelTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/ExcelTool/obj/Debug/ExcelTool.csproj.CoreCompileInputs.cache b/ExcelTool/obj/Debug/ExcelTool.csproj.CoreCompileInputs.cache index 01c0f1c..8a51486 100644 --- a/ExcelTool/obj/Debug/ExcelTool.csproj.CoreCompileInputs.cache +++ b/ExcelTool/obj/Debug/ExcelTool.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -5be383d8458e8adf3321425f1a6ef7ed98f16846 +05ba930c17cc8f5ba2765e4f9b5fad95a2f8ca8f diff --git a/ExcelTool/obj/Debug/ExcelTool.csproj.FileListAbsolute.txt b/ExcelTool/obj/Debug/ExcelTool.csproj.FileListAbsolute.txt index 2c2d041..959b2a7 100644 --- a/ExcelTool/obj/Debug/ExcelTool.csproj.FileListAbsolute.txt +++ b/ExcelTool/obj/Debug/ExcelTool.csproj.FileListAbsolute.txt @@ -51,3 +51,4 @@ D:\Study\github\ExcelTool\ExcelTool\obj\Debug\ExcelTool.csproj.CoreCompileInputs D:\Study\github\ExcelTool\ExcelTool\obj\Debug\ExcelTool.csproj.CopyComplete D:\Study\github\ExcelTool\ExcelTool\obj\Debug\ExcelTool.exe D:\Study\github\ExcelTool\ExcelTool\obj\Debug\ExcelTool.pdb +D:\study\github\ExcelTool\ExcelTool\obj\Debug\ExcelTool.csprojAssemblyReference.cache diff --git a/ExcelTool/obj/Debug/ExcelTool.csprojAssemblyReference.cache b/ExcelTool/obj/Debug/ExcelTool.csprojAssemblyReference.cache new file mode 100644 index 0000000..2851bfd Binary files /dev/null and b/ExcelTool/obj/Debug/ExcelTool.csprojAssemblyReference.cache differ diff --git a/ExcelTool/obj/Debug/ExcelTool.exe b/ExcelTool/obj/Debug/ExcelTool.exe index bf703cd..23bc9f9 100644 Binary files a/ExcelTool/obj/Debug/ExcelTool.exe and b/ExcelTool/obj/Debug/ExcelTool.exe differ diff --git a/ExcelTool/obj/Debug/ExcelTool.pdb b/ExcelTool/obj/Debug/ExcelTool.pdb index e851fdd..3a69b51 100644 Binary files a/ExcelTool/obj/Debug/ExcelTool.pdb and b/ExcelTool/obj/Debug/ExcelTool.pdb differ