新增intlist,stringlist,floatlist,boollist,longlist数组

This commit is contained in:
dingxiaowei
2022-10-09 17:59:44 +08:00
parent ac680a49c9
commit 5e9d889162
16 changed files with 327 additions and 40 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -70,6 +70,7 @@
<Compile Include="Extend.cs" />
<Compile Include="FileManager.cs" />
<Compile Include="IBinarySerializable.cs" />
<Compile Include="official_room.cs" />
<Compile Include="Parser\GenModels.cs" />
<Compile Include="Parser\TableExcelData.cs" />
<Compile Include="Parser\TableExcelExportBytes.cs" />
+85
View File
@@ -178,6 +178,91 @@ namespace ExcelTool
}
}
}
else if (data.Item1.Equals("intlist"))
{
string str = data.Item2.ToString();
if (string.IsNullOrEmpty(str))
{
bw.Write(Convert.ToInt32(0));
}
else
{
var numStrs = str.Split(',');
bw.Write(numStrs.Length);
for (int i = 0; i < numStrs.Length; i++)
{
bw.Write(Convert.ToInt32(numStrs[i]));
}
}
}
else if (data.Item1.Equals("floatlist"))
{
string str = data.Item2.ToString();
if (string.IsNullOrEmpty(str))
{
bw.Write(Convert.ToInt32(0));
}
else
{
var numStrs = str.Split(',');
bw.Write(numStrs.Length);
for (int i = 0; i < numStrs.Length; i++)
{
bw.Write(Convert.ToSingle(numStrs[i]));
}
}
}
else if (data.Item1.Equals("boollist"))
{
string str = data.Item2.ToString();
if (string.IsNullOrEmpty(str))
{
bw.Write(Convert.ToInt32(0));
}
else
{
var numStrs = str.Split(',');
bw.Write(numStrs.Length);
for (int i = 0; i < numStrs.Length; i++)
{
bw.Write(Convert.ToBoolean(numStrs[i]));
}
}
}
else if (data.Item1.Equals("stringlist"))
{
string str = data.Item2.ToString();
if (string.IsNullOrEmpty(str))
{
bw.Write(Convert.ToInt32(0));
}
else
{
var numStrs = str.Split(',');
bw.Write(numStrs.Length);
for (int i = 0; i < numStrs.Length; i++)
{
bw.Write(numStrs[i]);
}
}
}
else if (data.Item1.Equals("longlist"))
{
string str = data.Item2.ToString();
if (string.IsNullOrEmpty(str))
{
bw.Write(Convert.ToInt32(0));
}
else
{
var numStrs = str.Split(',');
bw.Write(numStrs.Length);
for (int i = 0; i < numStrs.Length; i++)
{
bw.Write(Convert.ToInt64(numStrs[i]));
}
}
}
else if (data.Item1.Contains("list<")) //泛型数组类型
{
string str = data.Item2.ToString();
+194 -22
View File
@@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ExcelTool
{
@@ -50,6 +47,26 @@ namespace ExcelTool
{
sb.Append(string.Format("\tpublic List<List<float>> {0}", headers[i].FieldName));
}
else if (type.Equals("intlist"))
{
sb.Append(string.Format("\tpublic List<int> {0}", headers[i].FieldName));
}
else if (type.Equals("boollist"))
{
sb.Append(string.Format("\tpublic List<bool> {0}", headers[i].FieldName));
}
else if (type.Equals("floatlist"))
{
sb.Append(string.Format("\tpublic List<float> {0}", headers[i].FieldName));
}
else if (type.Equals("stringlist"))
{
sb.Append(string.Format("\tpublic List<string> {0}", headers[i].FieldName));
}
else if (type.Equals("longlist"))
{
sb.Append(string.Format("\tpublic List<long> {0}", headers[i].FieldName));
}
else if (type.Contains("list<"))
{
var tempS = type.Substring(5);
@@ -145,6 +162,86 @@ namespace ExcelTool
sb.Append($"\t\t\t{name} = null;\n");
sb.Append("\t\t}\n");
}
else if (type.Equals("intlist"))
{
sb.Append($"\t\tvar {name}Count = reader.ReadInt32();\n");
sb.Append($"\t\tif ({name}Count > 0)\n");
sb.Append("\t\t{\n");
sb.Append($"\t\t\t{name} = new List<int>();\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");
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 if (type.Equals("boollist"))
{
sb.Append($"\t\tvar {name}Count = reader.ReadInt32();\n");
sb.Append($"\t\tif ({name}Count > 0)\n");
sb.Append("\t\t{\n");
sb.Append($"\t\t\t{name} = new List<bool>();\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");
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 if (type.Equals("floatlist"))
{
sb.Append($"\t\tvar {name}Count = reader.ReadInt32();\n");
sb.Append($"\t\tif ({name}Count > 0)\n");
sb.Append("\t\t{\n");
sb.Append($"\t\t\t{name} = new List<float>();\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");
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 if (type.Equals("stringlist"))
{
sb.Append($"\t\tvar {name}Count = reader.ReadInt32();\n");
sb.Append($"\t\tif ({name}Count > 0)\n");
sb.Append("\t\t{\n");
sb.Append($"\t\t\t{name} = new List<string>();\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");
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 if (type.Equals("longlist"))
{
sb.Append($"\t\tvar {name}Count = reader.ReadInt32();\n");
sb.Append($"\t\tif ({name}Count > 0)\n");
sb.Append("\t\t{\n");
sb.Append($"\t\t\t{name} = new List<long>();\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");
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 if (type.Contains("list<"))
{
var tempS = type.Substring(5);
@@ -249,6 +346,81 @@ namespace ExcelTool
sb.Append("\t\t\t}\n");
sb.Append("\t\t}\n");
}
else if (type.Equals("intlist"))
{
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");
}
else if (type.Equals("boollist"))
{
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");
}
else if (type.Equals("floatlist"))
{
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");
}
else if (type.Equals("longlist"))
{
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");
}
else if (type.Equals("stringlist"))
{
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");
}
else if (type.Contains("list<"))
{
var tempS = type.Substring(5);
@@ -265,30 +437,30 @@ namespace ExcelTool
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"))
//{
if (listTType.Equals("int"))
{
//}
//else if (listTType.Equals("bool"))
//{
}
else if (listTType.Equals("bool"))
{
//}
//else if (listTType.Equals("float"))
//{
}
else if (listTType.Equals("float"))
{
//}
//else if (listTType.Equals("long"))
//{
}
else if (listTType.Equals("long"))
{
//}
//else if (listTType.Equals("string"))
//{
}
else if (listTType.Equals("string"))
{
//}
//else
//{
// ConsoleHelper.WriteErrorLine("数组泛型T不是指定类型");
//}
}
else
{
ConsoleHelper.WriteErrorLine("数组泛型T不是指定类型");
}
}
else
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
+41 -12
View File
@@ -72,9 +72,13 @@ public partial class official_room : IBinarySerializable
/// </summary>
public List<float> Offset { get; set; }
/// <summary>
/// 测试数组
/// Int数组测试
/// </summary>
public List<int> IntList { get; set; }
public List<int> IntListAttr { get; set; }
/// <summary>
/// float数组测试
/// </summary>
public List<float> FloatListAttr { get; set; }
public void DeSerialize(BinaryReader reader)
{
@@ -117,18 +121,31 @@ public partial class official_room : IBinarySerializable
{
Offset = null;
}
var IntListCount = reader.ReadInt32();
if (IntListCount > 0)
var IntListAttrCount = reader.ReadInt32();
if (IntListAttrCount > 0)
{
IntList = new List<int>();
for (int i = 0; i < IntListCount; i++)
IntListAttr = new List<int>();
for (int i = 0; i < IntListAttrCount; i++)
{
IntList.Add(reader.ReadInt32());
IntListAttr.Add(reader.ReadInt32());
}
}
else
{
IntList = null;
IntListAttr = null;
}
var FloatListAttrCount = reader.ReadInt32();
if (FloatListAttrCount > 0)
{
FloatListAttr = new List<float>();
for (int i = 0; i < FloatListAttrCount; i++)
{
FloatListAttr.Add(reader.ReadSingle());
}
}
else
{
FloatListAttr = null;
}
}
@@ -171,16 +188,28 @@ public partial class official_room : IBinarySerializable
writer.Write(Offset[i]);
}
}
if (IntList == null || IntList.Count == 0)
if (IntListAttr == null || IntListAttr.Count == 0)
{
writer.Write(0);
}
else
{
writer.Write(IntList.Count);
for (int i = 0; i < IntList.Count; i++)
writer.Write(IntListAttr.Count);
for (int i = 0; i < IntListAttr.Count; i++)
{
writer.Write(IntList[i]);
writer.Write(IntListAttr[i]);
}
}
if (FloatListAttr == null || FloatListAttr.Count == 0)
{
writer.Write(0);
}
else
{
writer.Write(FloatListAttr.Count);
for (int i = 0; i < FloatListAttr.Count; i++)
{
writer.Write(FloatListAttr[i]);
}
}
}
+5 -5
View File
@@ -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","List<int>,IntList"
序号,,注释(产品用来自己备注的),默认名称(该场景的默认显示的名称),默认场景简述(该场景默认显示的简要描述信息,显示在官方房间入口上),场景详情(该场景的详细描述信息,显示在详情页中),背景图(对应显示在详情界面上的图片pathID或路径,希望能支持填写为一个表,即填多张,以支持轮播显示),对应场景ID(对应场景注册表中的场景ID),对应地图地址(对应高德上的地图地址,填对应点的经纬度,是否要同时把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","IntList,IntListAttr","List<float>,FloatListAttr"
序号,,注释(产品用来自己备注的),默认名称(该场景的默认显示的名称),默认场景简述(该场景默认显示的简要描述信息,显示在官方房间入口上),场景详情(该场景的详细描述信息,显示在详情页中),背景图(对应显示在详情界面上的图片pathID或路径,希望能支持填写为一个表,即填多张,以支持轮播显示),对应场景ID(对应场景注册表中的场景ID),对应地图地址(对应高德上的地图地址,填对应点的经纬度,是否要同时把POI点名称填上,由程序确认),初始推荐排序(房间生成时的推荐优先级,确定初始显示位置,数字越低,优先级越高,后续会随着房间推荐算法变化),分线启用人数(达到多少人启用分线,不填或为0为不分线),客人是否可使用背包(在该房间中,客人不可以使用背包),进入默认静音,出生点坐标,,Int数组测试,float数组测试
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]","1,2,3,4,5"
}",0,100,0,1,"[-497.225,17.536,-107.682]","[0,0,0]","1,2,3,4,5","1.1,2.2,3.3"
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]",,
1 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<int>,IntList IntList,IntListAttr List<float>,FloatListAttr
2 序号 注释(产品用来自己备注的) 默认名称(该场景的默认显示的名称) 默认场景简述(该场景默认显示的简要描述信息,显示在官方房间入口上) 场景详情(该场景的详细描述信息,显示在详情页中) 背景图(对应显示在详情界面上的图片pathID或路径,希望能支持填写为一个表,即填多张,以支持轮播显示) 对应场景ID(对应场景注册表中的场景ID) 对应地图地址(对应高德上的地图地址,填对应点的经纬度,是否要同时把POI点名称填上,由程序确认) 初始推荐排序(房间生成时的推荐优先级,确定初始显示位置,数字越低,优先级越高,后续会随着房间推荐算法变化) 分线启用人数(达到多少人启用分线,不填或为0为不分线) 客人是否可使用背包(在该房间中,客人不可以使用背包) 进入默认静音 出生点坐标 测试数组 Int数组测试 float数组测试
3 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] 1,2,3,4,5 1,2,3,4,5 1.1,2.2,3.3
4 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]
5 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]
6
7
8
9
10
11
12
13
14
15
16
17
@@ -1 +1 @@
05ba930c17cc8f5ba2765e4f9b5fad95a2f8ca8f
5be383d8458e8adf3321425f1a6ef7ed98f16846
Binary file not shown.
Binary file not shown.