From 35bafee063be5eb33c9081497f54af4981ca2073 Mon Sep 17 00:00:00 2001 From: walon Date: Thu, 17 Jun 2021 09:11:34 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91=20?= =?UTF-8?q?=E8=83=BD=E5=A4=9F=E4=BB=8Eexcel,json,xml,lua=E7=AD=89=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=96=87=E4=BB=B6=E4=B8=AD=E5=8A=A0=E8=BD=BD=20text?= =?UTF-8?q?=20=E7=B1=BB=E5=9E=8B=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + config/Datas/test/full_type.xlsx | Bin 11107 -> 12409 bytes config/Datas/test/json_datas/1.json | 1 + config/Datas/test/json_datas/2.json | 1 + config/Datas/test/lua_datas/demo.lua | 1 + config/Datas/test/table_one.xlsx | Bin 9249 -> 9516 bytes config/Datas/test/xml_datas/1.xml | 2 +- config/Datas/test/xml_datas/2.xml | 2 +- config/Defines/test.xml | 2 + config/output_lua/TbDataFromJson.lua | 5 - config/output_lua/TbDataFromLua.lua | 4 - config/output_lua/TbDataFromXml.lua | 5 - config/output_lua/TbFullTypes.lua | 11 - config/output_lua/TbMultiRowRecord.lua | 6 - config/output_lua/TbMultiRowTitle.lua | 4 - config/output_lua/TbSingleton.lua | 2 - config/output_lua/TbTwoKey.lua | 8 - config/output_lua/Types.lua | 331 ------------------ config/生成lua数据.bat | 2 +- .../Source/DataSources/Excel/ExcelStream.cs | 2 + src/Luban.Job.Cfg/Source/Datas/DText.cs | 7 +- src/Luban.Job.Cfg/Source/Defs/DefAssembly.cs | 18 + .../Source/TypeVisitors/ExcelDataCreator.cs | 85 +++-- .../Source/TypeVisitors/JsonDataCreator.cs | 22 +- .../Source/TypeVisitors/LuaDataCreator.cs | 29 +- .../Source/TypeVisitors/StringDataCreator.cs | 25 +- .../Source/TypeVisitors/XmlDataCreator.cs | 5 +- src/Luban.Job.Cfg/Source/Utils/DataUtil.cs | 10 + 28 files changed, 167 insertions(+), 424 deletions(-) delete mode 100644 config/output_lua/TbDataFromJson.lua delete mode 100644 config/output_lua/TbDataFromLua.lua delete mode 100644 config/output_lua/TbDataFromXml.lua delete mode 100644 config/output_lua/TbFullTypes.lua delete mode 100644 config/output_lua/TbMultiRowRecord.lua delete mode 100644 config/output_lua/TbMultiRowTitle.lua delete mode 100644 config/output_lua/TbSingleton.lua delete mode 100644 config/output_lua/TbTwoKey.lua delete mode 100644 config/output_lua/Types.lua diff --git a/.gitignore b/.gitignore index 9bf182d..0336fe7 100644 --- a/.gitignore +++ b/.gitignore @@ -267,3 +267,4 @@ __pycache__/ /config/output_code /config/output_data +/config/output_lua diff --git a/config/Datas/test/full_type.xlsx b/config/Datas/test/full_type.xlsx index ba9641ae0b5e84b856d9e60e71df1e223218a764..bb5374a38d95ddc1ae8946c988d67cab5badf216 100644 GIT binary patch literal 12409 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

2f3zD}-@Pn3!oLd=w$UVF#u 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 diff --git a/config/Datas/test/json_datas/1.json b/config/Datas/test/json_datas/1.json index 873e9b9..391f630 100644 --- a/config/Datas/test/json_datas/1.json +++ b/config/Datas/test/json_datas/1.json @@ -13,6 +13,7 @@ "x12": { "x1":10}, "x13":"B", "x14":{"__type__": "DemoD2", "x1":1, "x2":2}, + "s1": {"key":"/asfa", "text":"aabbcc"}, "v2":{"x":1, "y":2}, "v3":{"x":1.1, "y":2.2, "z":3.4}, "v4":{"x":10.1, "y":11.2, "z":12.3, "w":13.4}, diff --git a/config/Datas/test/json_datas/2.json b/config/Datas/test/json_datas/2.json index d3be8bb..5c59c81 100644 --- a/config/Datas/test/json_datas/2.json +++ b/config/Datas/test/json_datas/2.json @@ -13,6 +13,7 @@ "x12": { "x1":10}, "x13":"B", "x14":{"__type__": "DemoD2", "x1":1, "x2":2}, + "s1": {"key":"/asfa32", "text":"aabbcc22"}, "v2":{"x":1, "y":2}, "v3":{"x":1.1, "y":2.2, "z":3.4}, "v4":{"x":10.1, "y":11.2, "z":12.3, "w":13.4}, diff --git a/config/Datas/test/lua_datas/demo.lua b/config/Datas/test/lua_datas/demo.lua index 5d8daf3..1375dc7 100644 --- a/config/Datas/test/lua_datas/demo.lua +++ b/config/Datas/test/lua_datas/demo.lua @@ -14,6 +14,7 @@ return x12 = {x1=1}, x13 = "D", x14 = { __type__="DemoD2", x1 = 1, x2=3}, + s1 = { key="lua/key1", text="lua text "}, v2 = {x= 1,y = 2}, v3 = {x=0.1, y= 0.2,z=0.3}, v4 = {x=1,y=2,z=3.5,w=4}, diff --git a/config/Datas/test/table_one.xlsx b/config/Datas/test/table_one.xlsx index 22052254a3e6a309de3c9df54070132d683f76d8..7b5a98e3f5f9af7e9e9fa8aed23a234f01408e07 100644 GIT binary patch literal 9516 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 Yv`k$I6+w?5M=Y=aJqS{3)BpJPKUEjn>;M1& literal 9249 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 diff --git a/config/Datas/test/xml_datas/1.xml b/config/Datas/test/xml_datas/1.xml index b789737..adb9a54 100644 --- a/config/Datas/test/xml_datas/1.xml +++ b/config/Datas/test/xml_datas/1.xml @@ -18,7 +18,7 @@ 1 2 - + xml_key1xml text 1,2 1.2,2.3,3.4 1.2,2.2,3.2,4.3 diff --git a/config/Datas/test/xml_datas/2.xml b/config/Datas/test/xml_datas/2.xml index 7b0ffbf..2bd1dd1 100644 --- a/config/Datas/test/xml_datas/2.xml +++ b/config/Datas/test/xml_datas/2.xml @@ -18,7 +18,7 @@ 1 2 - + xml_key2xml text222 1,2 1.2,2.3,3.4 1.2,2.2,3.2,4.3 diff --git a/config/Defines/test.xml b/config/Defines/test.xml index 62edbee..2d32cbe 100644 --- a/config/Defines/test.xml +++ b/config/Defines/test.xml @@ -58,6 +58,8 @@ 多态数据结构 + + diff --git a/config/output_lua/TbDataFromJson.lua b/config/output_lua/TbDataFromJson.lua deleted file mode 100644 index 3c1ad34..0000000 --- a/config/output_lua/TbDataFromJson.lua +++ /dev/null @@ -1,5 +0,0 @@ -return -{ -[1] = {x4=1,x1=true,x2=3,x3=128,x5=11223344,x6=1.2,x7=1.23432,x8_0=12312,x8=112233,x9=223344,x10='hq',x12={x1=10,},x13=2,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=1.1,y=2.2,z=3.4},v4={x=10.1,y=11.2,z=12.3,w=13.4},t1=-28800,k1={1,2,},k2={2,3,},k3={1,3,},k4={1,5,},k5={1,6,},k6={1,7,},k7={2,3,},k8={[2]=2,[4]=10,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},},}, -[2] = {x4=2,x1=true,x2=3,x3=128,x5=11223344,x6=1.2,x7=1.23432,x8_0=12312,x8=112233,x9=223344,x10='hq',x12={x1=10,},x13=2,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=1.1,y=2.2,z=3.4},v4={x=10.1,y=11.2,z=12.3,w=13.4},t1=-28800,k1={1,2,},k2={2,3,},k3={1,3,},k4={1,5,},k5={1,6,},k6={1,7,},k7={2,3,},k8={[2]=2,[4]=10,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},},}, -} \ No newline at end of file diff --git a/config/output_lua/TbDataFromLua.lua b/config/output_lua/TbDataFromLua.lua deleted file mode 100644 index 47cc016..0000000 --- a/config/output_lua/TbDataFromLua.lua +++ /dev/null @@ -1,4 +0,0 @@ -return -{ -[1122] = {x4=1122,x1=false,x2=2,x3=128,x5=112233445566,x6=1.3,x7=1122,x8_0=13,x8=12,x9=123,x10='yf',x12={x1=1,},x13=5,x14={ _name='test.DemoD2',x1=1,x2=3,},v2={x=1,y=2},v3={x=0.1,y=0.2,z=0.3},v4={x=1,y=2,z=3.5,w=4},t1=-28800,k1={1,2,},k2={2,3,},k3={3,4,},k4={1,2,},k5={1,3,},k6={1,2,},k7={1,8,},k8={[2]=10,[3]=12,},k9={{y1=1,y2=true,},{y1=10,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=3,},},}, -} \ No newline at end of file diff --git a/config/output_lua/TbDataFromXml.lua b/config/output_lua/TbDataFromXml.lua deleted file mode 100644 index 5d3b12d..0000000 --- a/config/output_lua/TbDataFromXml.lua +++ /dev/null @@ -1,5 +0,0 @@ -return -{ -[1] = {x4=1,x1=true,x2=4,x3=128,x5=112233445566,x6=1.3,x7=1112232.43123,x8_0=123,x8=112233,x9=112334,x10='yf',x12={x1=1,},x13=4,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=1.2,y=2.3,z=3.4},v4={x=1.2,y=2.2,z=3.2,w=4.3},t1=-28800,k1={1,2,},k2={1,2,},k3={1,2,},k4={1,2,},k5={1,2,},k6={1,2,},k7={1,3,},k8={[2]=10,[3]=30,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},},}, -[2] = {x4=2,x1=true,x2=4,x3=128,x5=112233445566,x6=1.3,x7=1112232.43123,x8_0=123,x8=112233,x9=112334,x10='yf',x12={x1=1,},x13=4,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=1.2,y=2.3,z=3.4},v4={x=1.2,y=2.2,z=3.2,w=4.3},t1=-28800,k1={1,2,},k2={1,2,},k3={1,2,},k4={1,2,},k5={1,2,},k6={1,2,},k7={1,3,},k8={[2]=10,[3]=30,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},},}, -} \ No newline at end of file diff --git a/config/output_lua/TbFullTypes.lua b/config/output_lua/TbFullTypes.lua deleted file mode 100644 index 955f7ab..0000000 --- a/config/output_lua/TbFullTypes.lua +++ /dev/null @@ -1,11 +0,0 @@ -return -{ -[1] = {x4=10000,x1=true,x2=5,x3=1,x5=13234234234,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=935460549,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=3,},},}, -[3] = {x4=10001,x1=true,x2=5,x3=3,x5=13234234234,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=935460549,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=5,},},}, -[4] = {x4=10002,x1=true,x2=5,x3=4,x5=13234234234,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=1577808000,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=6,},},}, -[5] = {x4=10003,x1=true,x2=5,x3=5,x5=13234234234,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=935460549,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=7,},},}, -[6] = {x4=10001,x1=true,x2=5,x3=6,x5=13234234234,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=1577808000,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=8,},},}, -[7] = {x4=10002,x1=true,x2=5,x3=7,x5=13234234234,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=935460549,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=9,},},}, -[8] = {x4=10003,x1=true,x2=5,x3=8,x5=2,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=1577808000,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=10,},},}, -[9] = {x4=1,x1=true,x2=5,x3=9,x5=13234234234,x6=1.28,x7=1.23457891,x8_0=1234,x8=1234,x9=111111111,x10='huang',x12={x1=1988,},x13=1,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=2,y=3,z=4},v4={x=10.2,y=2.3,z=3.4,w=12.8},t1=935460549,k1={1,2,3,},k2={1,2,4,},k3={1,2,5,},k4={1,2,6,},k5={1,2,7,},k6={1,2,8,},k7={1,2,9,},k8={[1]=2,[3]=4,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},{ _name='test.DemoE1',x1=1,x3=2,x4=11,},},}, -} \ No newline at end of file diff --git a/config/output_lua/TbMultiRowRecord.lua b/config/output_lua/TbMultiRowRecord.lua deleted file mode 100644 index f593027..0000000 --- a/config/output_lua/TbMultiRowRecord.lua +++ /dev/null @@ -1,6 +0,0 @@ -return -{ -[1] = {id=1,name='xxx',one_rows={{id=1,x=2,},},multi_rows1={{id=1,x=2,},},multi_rows2={{id=1,x=2,},},multi_rows3={{id=1,x=2,y=3,},},multi_rows4={[1]={id=1,x=2,y=3,},},}, -[2] = {id=2,name='xxx',one_rows={{id=2,x=4,},},multi_rows1={{id=2,x=4,},},multi_rows2={{id=3,x=4,},{id=3,x=4,},},multi_rows3={{id=2,x=3,y=4,},{id=2,x=3,y=4,},},multi_rows4={[2]={id=4,x=5,y=4,},},}, -[3] = {id=3,name='ds',one_rows={{id=1,x=2,},},multi_rows1={{id=1,x=2,},{id=2,x=4,},},multi_rows2={{id=3,x=4,},{id=3,x=4,},},multi_rows3={{id=1,x=2,y=3,},{id=2,x=3,y=4,},},multi_rows4={[1]={id=1,x=2,y=3,},[2]={id=4,x=5,y=4,},[3]={id=4,x=5,y=4,},},}, -} \ No newline at end of file diff --git a/config/output_lua/TbMultiRowTitle.lua b/config/output_lua/TbMultiRowTitle.lua deleted file mode 100644 index c5ce13f..0000000 --- a/config/output_lua/TbMultiRowTitle.lua +++ /dev/null @@ -1,4 +0,0 @@ -return -{ -[1] = {id=1,name='xxx',x1={y2={z2=2,z3=3,},y3=4,},x2={{z2=1,z3=2,},{z2=3,z3=4,},},x3={{z2=1,z3=2,},{z2=3,z3=4,},},}, -} \ No newline at end of file diff --git a/config/output_lua/TbSingleton.lua b/config/output_lua/TbSingleton.lua deleted file mode 100644 index acb8f3e..0000000 --- a/config/output_lua/TbSingleton.lua +++ /dev/null @@ -1,2 +0,0 @@ -return -{id=5,name='aabbcc',date={ _name='test.DemoD5',x1=1,time={start_time=398966400,end_time=936806400,},},} \ No newline at end of file diff --git a/config/output_lua/TbTwoKey.lua b/config/output_lua/TbTwoKey.lua deleted file mode 100644 index 3fc4f5d..0000000 --- a/config/output_lua/TbTwoKey.lua +++ /dev/null @@ -1,8 +0,0 @@ -return -{ -[128] = -{ -[1] = {x4=1,x1=true,x2=3,x3=128,x5=11223344,x6=1.2,x7=1.23432,x8_0=12312,x8=112233,x9=223344,x10='hq',x12={x1=10,},x13=2,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=1.1,y=2.2,z=3.4},v4={x=10.1,y=11.2,z=12.3,w=13.4},t1=-28800,k1={1,2,},k2={2,3,},k3={1,3,},k4={1,5,},k5={1,6,},k6={1,7,},k7={2,3,},k8={[2]=2,[4]=10,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},},}, -[2] = {x4=2,x1=true,x2=3,x3=128,x5=11223344,x6=1.2,x7=1.23432,x8_0=12312,x8=112233,x9=223344,x10='hq',x12={x1=10,},x13=2,x14={ _name='test.DemoD2',x1=1,x2=2,},v2={x=1,y=2},v3={x=1.1,y=2.2,z=3.4},v4={x=10.1,y=11.2,z=12.3,w=13.4},t1=-28800,k1={1,2,},k2={2,3,},k3={1,3,},k4={1,5,},k5={1,6,},k6={1,7,},k7={2,3,},k8={[2]=2,[4]=10,},k9={{y1=1,y2=true,},{y1=2,y2=false,},},k15={{ _name='test.DemoD2',x1=1,x2=2,},},}, -}, -} \ No newline at end of file diff --git a/config/output_lua/Types.lua b/config/output_lua/Types.lua deleted file mode 100644 index 9ddd9c8..0000000 --- a/config/output_lua/Types.lua +++ /dev/null @@ -1,331 +0,0 @@ - ---[[------------------------------------------------------------------------------ --- --- This code was generated by a tool. --- Changes to this file may cause incorrect behavior and will be lost if --- the code is regenerated. --- ---]]------------------------------------------------------------------------------ - - - -local consts = -{ - ---@class test.DemoConst - ---@field public x1 int - ---@field public x2 long - ---@field public x3 float - ---@field public x4 double - ['test.DemoConst'] = { x1=0, x2=3242, x3=444.3, x4=55.3, }; -} - -local enums = -{ - ---@class test.DemoEnum - ---@field public A int - ---@field public B int - ---@field public C int - ---@field public D int - ['test.DemoEnum'] = { A=1, B=2, C=4, D=5, }; - ---@class test.ETestUeType - ---@field public WHITE int - ---@field public BLACK int - ['test.ETestUeType'] = { WHITE=0, BLACK=1, }; - ---@class test.ETestEmptyEnum - ['test.ETestEmptyEnum'] = { }; - ---@class test.ETestEmptyEnum2 - ---@field public SMALL_THAN_256 int - ---@field public X_256 int - ---@field public X_257 int - ['test.ETestEmptyEnum2'] = { SMALL_THAN_256=255, X_256=256, X_257=257, }; -} - -local beans = {} ----@class test.DemoType1 ----@field public x1 int -beans['test.DemoType1'] = -{ - { name='x1', type='int'}, -} - ----@class test.DemoDynamic ----@field public x1 int -beans['test.DemoDynamic'] = -{ - { name='x1', type='int'}, -} - ----@class test.DemoD2 :test.DemoDynamic ----@field public x2 int -beans['test.DemoD2'] = -{ - { name='x1', type='int'}, - { name='x2', type='int'}, -} - ----@class test.DemoD3 :test.DemoDynamic ----@field public x3 int -beans['test.DemoD3'] = -{ - { name='x1', type='int'}, - { name='x3', type='int'}, -} - ----@class test.DemoE1 :test.DemoD3 ----@field public x4 int -beans['test.DemoE1'] = -{ - { name='x1', type='int'}, - { name='x3', type='int'}, - { name='x4', type='int'}, -} - ----@class test.DemoD5 :test.DemoDynamic ----@field public time test.DateTimeRange -beans['test.DemoD5'] = -{ - { name='x1', type='int'}, - { name='time', type='test.DateTimeRange'}, -} - ----@class test.DemoE2 ----@field public y1 int ----@field public y2 bool -beans['test.DemoE2'] = -{ - { name='y1', type='int'}, - { name='y2', type='bool'}, -} - ----@class test.DemoType2 ----@field public x4 int ----@field public x1 bool ----@field public x2 byte ----@field public x3 short ----@field public x5 long ----@field public x6 float ----@field public x7 double ----@field public x8_0 short ----@field public x8 int ----@field public x9 long ----@field public x10 string ----@field public x12 test.DemoType1 ----@field public x13 test.DemoEnum ----@field public x14 test.DemoDynamic ----@field public v2 vector2 ----@field public v3 vector3 ----@field public v4 vector4 ----@field public t1 int ----@field public k1 int[] ----@field public k2 int[] ----@field public k3 int[] ----@field public k4 int[] ----@field public k5 int[] ----@field public k6 int[] ----@field public k7 int[] ----@field public k8 table ----@field public k9 test.DemoE2[] ----@field public k15 test.DemoDynamic[] -beans['test.DemoType2'] = -{ - { name='x4', type='int'}, - { name='x1', type='bool'}, - { name='x2', type='byte'}, - { name='x3', type='short'}, - { name='x5', type='long'}, - { name='x6', type='float'}, - { name='x7', type='double'}, - { name='x8_0', type='short'}, - { name='x8', type='int'}, - { name='x9', type='long'}, - { name='x10', type='string'}, - { name='x12', type='test.DemoType1'}, - { name='x13', type='test.DemoEnum'}, - { name='x14', type='test.DemoDynamic'}, - { name='v2', type='vector2'}, - { name='v3', type='vector3'}, - { name='v4', type='vector4'}, - { name='t1', type='int'}, - { name='k1', type='int[]'}, - { name='k2', type='int[]'}, - { name='k3', type='int[]'}, - { name='k4', type='int[]'}, - { name='k5', type='int[]'}, - { name='k6', type='int[]'}, - { name='k7', type='int[]'}, - { name='k8', type='table'}, - { name='k9', type='test.DemoE2[]'}, - { name='k15', type='test.DemoDynamic[]'}, -} - ----@class test.DateTimeRange ----@field public start_time int ----@field public end_time int -beans['test.DateTimeRange'] = -{ - { name='start_time', type='int'}, - { name='end_time', type='int'}, -} - ----@class test.DemoSingletonType ----@field public id int ----@field public name string ----@field public date test.DemoDynamic -beans['test.DemoSingletonType'] = -{ - { name='id', type='int'}, - { name='name', type='string'}, - { name='date', type='test.DemoDynamic'}, -} - ----@class test.MultiRowType1 ----@field public id int ----@field public x int -beans['test.MultiRowType1'] = -{ - { name='id', type='int'}, - { name='x', type='int'}, -} - ----@class test.MultiRowType2 ----@field public id int ----@field public x int ----@field public y float -beans['test.MultiRowType2'] = -{ - { name='id', type='int'}, - { name='x', type='int'}, - { name='y', type='float'}, -} - ----@class test.MultiRowRecord ----@field public id int ----@field public name string ----@field public one_rows test.MultiRowType1[] ----@field public multi_rows1 test.MultiRowType1[] ----@field public multi_rows2 test.MultiRowType1[] ----@field public multi_rows3 test.MultiRowType2[] ----@field public multi_rows4 table -beans['test.MultiRowRecord'] = -{ - { name='id', type='int'}, - { name='name', type='string'}, - { name='one_rows', type='test.MultiRowType1[]'}, - { name='multi_rows1', type='test.MultiRowType1[]'}, - { name='multi_rows2', type='test.MultiRowType1[]'}, - { name='multi_rows3', type='test.MultiRowType2[]'}, - { name='multi_rows4', type='table'}, -} - ----@class test.TestUeType ----@field public x1 bool ----@field public x2 byte ----@field public x3 short ----@field public x4 int ----@field public x5 long ----@field public x6 float ----@field public x10 string ----@field public x12 test.DemoType1 ----@field public x13 test.ETestUeType ----@field public v2 vector2 ----@field public v3 vector3 ----@field public v4 vector4 ----@field public t1 int ----@field public k1 int[] ----@field public k2 int[] ----@field public k3 int[] ----@field public k4 int[] ----@field public k5 int[] ----@field public k6 int[] ----@field public k7 int[] ----@field public k8 table ----@field public k9 test.DemoE2[] -beans['test.TestUeType'] = -{ - { name='x1', type='bool'}, - { name='x2', type='byte'}, - { name='x3', type='short'}, - { name='x4', type='int'}, - { name='x5', type='long'}, - { name='x6', type='float'}, - { name='x10', type='string'}, - { name='x12', type='test.DemoType1'}, - { name='x13', type='test.ETestUeType'}, - { name='v2', type='vector2'}, - { name='v3', type='vector3'}, - { name='v4', type='vector4'}, - { name='t1', type='int'}, - { name='k1', type='int[]'}, - { name='k2', type='int[]'}, - { name='k3', type='int[]'}, - { name='k4', type='int[]'}, - { name='k5', type='int[]'}, - { name='k6', type='int[]'}, - { name='k7', type='int[]'}, - { name='k8', type='table'}, - { name='k9', type='test.DemoE2[]'}, -} - ----@class test.H1 ----@field public y2 test.H2 ----@field public y3 int -beans['test.H1'] = -{ - { name='y2', type='test.H2'}, - { name='y3', type='int'}, -} - ----@class test.H2 ----@field public z2 int ----@field public z3 int -beans['test.H2'] = -{ - { name='z2', type='int'}, - { name='z3', type='int'}, -} - ----@class test.MultiRowTitle ----@field public id int ----@field public name string ----@field public x1 test.H1 ----@field public x2 test.H2[] ----@field public x3 test.H2[] -beans['test.MultiRowTitle'] = -{ - { name='id', type='int'}, - { name='name', type='string'}, - { name='x1', type='test.H1'}, - { name='x2', type='test.H2[]'}, - { name='x3', type='test.H2[]'}, -} - ----@class test.login.RoleInfo ----@field public role_id long -beans['test.login.RoleInfo'] = -{ - { name='role_id', type='long'}, -} - - -local tables = -{ - { name='TbFullTypes', file='test.TbFullTypes.bin', mode='map', index='x3', value_type='test.DemoType2' }, - - { name='TbSingleton', file='test.TbSingleton.bin', mode='one', value_type='test.DemoSingletonType'}, - - { name='TbDataFromJson', file='test.TbDataFromJson.bin', mode='map', index='x4', value_type='test.DemoType2' }, - - { name='TbDataFromXml', file='test.TbDataFromXml.bin', mode='map', index='x4', value_type='test.DemoType2' }, - - { name='TbDataFromLua', file='test.TbDataFromLua.bin', mode='map', index='x4', value_type='test.DemoType2' }, - - { name='TbTwoKey', file='test.TbTwoKey.bin', mode='bmap', index1='x3', index2='x4', value_type='test.DemoType2' }, - - { name='TbMultiRowRecord', file='test.TbMultiRowRecord.bin', mode='map', index='id', value_type='test.MultiRowRecord' }, - - { name='TbMultiRowTitle', file='test.TbMultiRowTitle.bin', mode='map', index='id', value_type='test.MultiRowTitle' }, - -} - -return { consts = consts, enums = enums, beans = beans, tables = tables } - diff --git a/config/生成lua数据.bat b/config/生成lua数据.bat index d850d87..49b944c 100644 --- a/config/生成lua数据.bat +++ b/config/生成lua数据.bat @@ -2,7 +2,7 @@ -h %LUBAN_SERVER_IP% ^ -j cfg ^ -- ^ - -d Defines/root.xml ^ + -d Defines/__root__.xml ^ --input_data_dir Datas ^ --output_data_dir output_lua ^ -s client ^ diff --git a/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelStream.cs b/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelStream.cs index 8eef8f3..504f086 100644 --- a/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelStream.cs +++ b/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelStream.cs @@ -82,6 +82,8 @@ namespace Luban.Job.Cfg.DataSources.Excel public string CurrentExcelPosition => _datas[Math.Min(_curIndex, _datas.Count - 1)].ToString(); + public int IncludeNullAndEmptySize => _toIndex - _curIndex + 1; + public override string ToString() { var sb = new StringBuilder(); diff --git a/src/Luban.Job.Cfg/Source/Datas/DText.cs b/src/Luban.Job.Cfg/Source/Datas/DText.cs index c898a9f..fc92881 100644 --- a/src/Luban.Job.Cfg/Source/Datas/DText.cs +++ b/src/Luban.Job.Cfg/Source/Datas/DText.cs @@ -4,8 +4,13 @@ namespace Luban.Job.Cfg.Datas { public class DText : DType { - public DText(string x) : base(x) + public string Key { get; } + + public DText(string key, string x) : base(x) { + Key = key; + + System.Console.WriteLine("== text. key:{0} text:{1}", key, x); } public override void Apply(IDataActionVisitor visitor, T x) diff --git a/src/Luban.Job.Cfg/Source/Defs/DefAssembly.cs b/src/Luban.Job.Cfg/Source/Defs/DefAssembly.cs index 2859b4e..058c150 100644 --- a/src/Luban.Job.Cfg/Source/Defs/DefAssembly.cs +++ b/src/Luban.Job.Cfg/Source/Defs/DefAssembly.cs @@ -39,6 +39,8 @@ namespace Luban.Job.Cfg.Defs public Dictionary CfgTables { get; } = new Dictionary(); + private readonly ConcurrentDictionary _texts = new ConcurrentDictionary(); + public void AddCfgTable(DefTable table) { if (!CfgTables.TryAdd(table.FullName, table)) @@ -109,6 +111,22 @@ namespace Luban.Job.Cfg.Defs return refTypes.Values.ToList(); } + public void AddText(string key, string text) + { + if (key == null || text == null) + { + throw new Exception("text的key或text属性不能为null"); + } + if (key == "" && text != "") + { + throw new InvalidExcelDataException($"text key为空, 但text:{text}不为空"); + } + if (!_texts.TryAdd(key, text) && _texts[key] != text) + { + throw new Exception($"text key:{key} 出现多次,但值不相同. 当前:{text} 之前:{_texts[key]}"); + } + } + public void Load(string outputService, Defines defines, RemoteAgent agent) { this.Agent = agent; diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/ExcelDataCreator.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/ExcelDataCreator.cs index 8719a39..423b502 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/ExcelDataCreator.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/ExcelDataCreator.cs @@ -7,6 +7,7 @@ using Luban.Job.Common.Types; using Luban.Job.Common.TypeVisitors; using System; using System.Collections.Generic; +using System.Runtime.Serialization; namespace Luban.Job.Cfg.TypeVisitors { @@ -18,6 +19,25 @@ namespace Luban.Job.Cfg.TypeVisitors NULL_STR_AS_NULL = 0x8, } + class InvalidExcelDataException : Exception + { + public InvalidExcelDataException() + { + } + + public InvalidExcelDataException(string message) : base(message) + { + } + + public InvalidExcelDataException(string message, Exception innerException) : base(message, innerException) + { + } + + protected InvalidExcelDataException(SerializationInfo info, StreamingContext context) : base(info, context) + { + } + } + class ExcelDataCreator : ITypeFuncVisitor { public static ExcelDataCreator Ins { get; } = new ExcelDataCreator(); @@ -32,7 +52,7 @@ namespace Luban.Job.Cfg.TypeVisitors } else { - throw new Exception($"单元格没有填有效数据"); + throw new InvalidExcelDataException($"单元格没有填有效数据"); } } return false; @@ -51,7 +71,7 @@ namespace Luban.Job.Cfg.TypeVisitors case "是": return true; case "false": case "否": return false; - default: throw new Exception($"{s} 不是 bool 类型的值 (true 或 false)"); + default: throw new InvalidExcelDataException($"{s} 不是 bool 类型的值 (true 或 false)"); } } @@ -74,7 +94,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!byte.TryParse(d.ToString(), out byte v)) { - throw new Exception($"{d} 不是 byte 类型值"); + throw new InvalidExcelDataException($"{d} 不是 byte 类型值"); } return new DByte(v); } @@ -88,7 +108,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!short.TryParse(d.ToString(), out short v)) { - throw new Exception($"{d} 不是 short 类型值"); + throw new InvalidExcelDataException($"{d} 不是 short 类型值"); } return new DShort(v); } @@ -102,7 +122,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!short.TryParse(d.ToString(), out short v)) { - throw new Exception($"{d} 不是 short 类型值"); + throw new InvalidExcelDataException($"{d} 不是 short 类型值"); } return new DFshort(v); } @@ -124,7 +144,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!int.TryParse(ds, out var v)) { - throw new Exception($"{d} 不是 int 类型值"); + throw new InvalidExcelDataException($"{d} 不是 int 类型值"); } return new DInt(v); } @@ -146,7 +166,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!int.TryParse(ds, out var v)) { - throw new Exception($"{d} 不是 int 类型值"); + throw new InvalidExcelDataException($"{d} 不是 int 类型值"); } return new DFint(v); } @@ -168,7 +188,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!long.TryParse(ds, out var v)) { - throw new Exception($"{d} 不是 long 类型值"); + throw new InvalidExcelDataException($"{d} 不是 long 类型值"); } return new DLong(v); } @@ -190,7 +210,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!long.TryParse(ds, out var v)) { - throw new Exception($"{d} 不是 long 类型值"); + throw new InvalidExcelDataException($"{d} 不是 long 类型值"); } return new DFlong(v); } @@ -204,7 +224,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!float.TryParse(d.ToString(), out var v)) { - throw new Exception($"{d} 不是 float 类型值"); + throw new InvalidExcelDataException($"{d} 不是 float 类型值"); } return new DFloat(v); } @@ -218,7 +238,7 @@ namespace Luban.Job.Cfg.TypeVisitors } if (!double.TryParse(d.ToString(), out var v)) { - throw new Exception($"{d} 不是 double 类型值"); + throw new InvalidExcelDataException($"{d} 不是 double 类型值"); } return new DDouble(v); } @@ -235,16 +255,11 @@ namespace Luban.Job.Cfg.TypeVisitors public DType Accept(TString type, object converter, ExcelStream x, DefAssembly ass) { - var d = x.Read(x.NamedMode); - if (d == null) + if (x.NamedMode && x.IncludeNullAndEmptySize != 1) { - return new DString(""); + throw new InvalidExcelDataException("excel string类型在标题头对应模式下必须正好占据一个单元格"); } - if (d is string s) - { - return new DString(DataUtil.UnEscapeString(s)); - } - return new DString(d.ToString()); + return new DString(ParseString(x.Read(x.NamedMode))); } public DType Accept(TBytes type, object converter, ExcelStream x, DefAssembly ass) @@ -252,18 +267,32 @@ namespace Luban.Job.Cfg.TypeVisitors throw new NotImplementedException(); } - public DType Accept(TText type, object converter, ExcelStream x, DefAssembly ass) + private static string ParseString(object d) { - var d = x.Read(x.NamedMode); if (d == null) { - return new DString(""); + return ""; } - if (d is string s) + else if (d is string s) { - return new DString(DataUtil.UnEscapeString(s)); + return DataUtil.UnEscapeString(s); } - return new DString(d.ToString()); + else + { + return d.ToString(); + } + } + + public DType Accept(TText type, object converter, ExcelStream x, DefAssembly ass) + { + if (x.NamedMode && x.IncludeNullAndEmptySize != 2) + { + throw new InvalidExcelDataException("excel text 类型在标题头对应模式下必须正好占据2个单元格"); + } + string key = ParseString(x.Read(x.NamedMode)); + string text = ParseString(x.Read(x.NamedMode)); + ass.AddText(key, text); + return new DText(key, text); } private List CreateBeanFields(DefBean bean, ExcelStream stream, DefAssembly ass) @@ -285,7 +314,7 @@ namespace Luban.Job.Cfg.TypeVisitors } catch (Exception e) { - throw new Exception($"读取结构:{bean.FullName} 字段:{f.Name} 出错 ==> {e.Message}", e); + throw new InvalidExcelDataException($"读取结构:{bean.FullName} 字段:{f.Name} 出错 ==> {e.Message}", e); } } return list; @@ -306,7 +335,7 @@ namespace Luban.Job.Cfg.TypeVisitors DefBean implType = (DefBean)originBean.GetNotAbstractChildType(subType); if (implType == null) { - throw new Exception($"type:{fullType} 不是bean类型"); + throw new InvalidExcelDataException($"type:{fullType} 不是bean类型"); } return new DBean(originBean, implType, CreateBeanFields(implType, x, ass)); } @@ -364,7 +393,7 @@ namespace Luban.Job.Cfg.TypeVisitors var value = string.IsNullOrWhiteSpace(sep) ? type.ValueType.Apply(this, null, x, ass) : type.ValueType.Apply(this, null, new ExcelStream(x.ReadCell(), sep, false), ass); if (!datas.TryAdd(key, value)) { - throw new Exception($"map 的 key:{key} 重复"); + throw new InvalidExcelDataException($"map 的 key:{key} 重复"); } } return new DMap(type, datas); diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/JsonDataCreator.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/JsonDataCreator.cs index eb17946..f83edb2 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/JsonDataCreator.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/JsonDataCreator.cs @@ -81,7 +81,27 @@ namespace Luban.Job.Cfg.TypeVisitors public DType Accept(TText type, JsonElement x, DefAssembly ass) { - return new DText(x.GetString()); + if (!x.TryGetProperty("key", out var keyEle)) + { + throw new Exception("text 缺失 key属性"); + } + if (!x.TryGetProperty("text", out var textEle)) + { + throw new Exception("text 缺失 text属性"); + } + string key = keyEle.GetString(); + if (key == null) + { + throw new Exception("text key不是字符串"); + } + string text = textEle.GetString(); + if (text == null) + { + throw new Exception("text text不是字符串"); + } + + ass.AddText(key, text); + return new DText(key, text); } public DType Accept(TBean type, JsonElement x, DefAssembly ass) diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/LuaDataCreator.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/LuaDataCreator.cs index 53235c2..8c3bc6e 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/LuaDataCreator.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/LuaDataCreator.cs @@ -108,17 +108,40 @@ namespace Luban.Job.Cfg.TypeVisitors public DType Accept(TString type, object x, DefAssembly ass) { - return new DString(x?.ToString()); + if (x is string s) + { + return new DString(s); + } + else + { + throw new Exception($"{x} 不是 double 类型数据"); + } } public DType Accept(TBytes type, object x, DefAssembly ass) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TText type, object x, DefAssembly ass) { - return new DText(x?.ToString()); + var table = (LuaTable)x; + if (table == null) + { + throw new Exception($"字段不是 text类型({{key=xx,text=yy}}}})"); + } + string key = (string)table["key"]; + string text = (string)table["text"]; + if (key == null) + { + throw new Exception("text缺失key属性"); + } + if (text == null) + { + throw new Exception("text缺失text属性"); + } + ass.AddText(key, text); + return new DText(key, text); } public DType Accept(TBean type, object x, DefAssembly ass) diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/StringDataCreator.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/StringDataCreator.cs index d4bb248..1444f17 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/StringDataCreator.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/StringDataCreator.cs @@ -1,4 +1,5 @@ using Luban.Job.Cfg.Datas; +using Luban.Job.Cfg.Utils; using Luban.Job.Common.Types; using Luban.Job.Common.TypeVisitors; using System; @@ -141,57 +142,59 @@ namespace Luban.Job.Cfg.TypeVisitors public DType Accept(TBytes type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TText type, string x) { - return new DText(x); + //var (key, text) = DataUtil.ExtractText(x); + //return new DText(key, text); + throw new NotSupportedException(); } public DType Accept(TBean type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TArray type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TList type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TSet type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TMap type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TVector2 type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TVector3 type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TVector4 type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } public DType Accept(TDateTime type, string x) { - throw new NotImplementedException(); + throw new NotSupportedException(); } } } diff --git a/src/Luban.Job.Cfg/Source/TypeVisitors/XmlDataCreator.cs b/src/Luban.Job.Cfg/Source/TypeVisitors/XmlDataCreator.cs index 3231e43..6ecca18 100644 --- a/src/Luban.Job.Cfg/Source/TypeVisitors/XmlDataCreator.cs +++ b/src/Luban.Job.Cfg/Source/TypeVisitors/XmlDataCreator.cs @@ -82,7 +82,10 @@ namespace Luban.Job.Cfg.TypeVisitors public DType Accept(TText type, XElement x, DefAssembly ass) { - return new DText(x.Value); + var key = x.Element("key").Value; + var text = x.Element("text").Value; + ass.AddText(key, text); + return new DText(key, text); } public DType Accept(TBean type, XElement x, DefAssembly ass) diff --git a/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs b/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs index fabe806..5064482 100644 --- a/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs +++ b/src/Luban.Job.Cfg/Source/Utils/DataUtil.cs @@ -73,6 +73,16 @@ namespace Luban.Job.Cfg.Utils return s; } + public static (string Key, string Text) ExtractText(string rawKeyAndText) + { + string[] keyAndText = rawKeyAndText.Split('|'); + if (keyAndText.Length != 2) + { + throw new Exception("text data should like |"); + } + return (keyAndText[0], keyAndText[1]); + } + //public static string Data2String(DType data) //{ // var s = new StringBuilder();