public bool NotContains(CSVaribles varible) { for (int i = 0; i < varibles.Count; i++) { if (varibles[i] == varible) { return(false); } } return(true); }
public bool UnpackFromTabFile(string fileName, TabFile tabfile) { curTabFile = tabfile; this.fileName = fileName.Substring(0, 1).ToUpper() + fileName.Substring(1); CSStruct curStruct = null; CSListStruct curListSturct = null; for (int i = 0; i < tabfile.columns.Count; i++) { TabFile.Column column = tabfile.columns[i]; if (!column.head.clientExport) { continue; } switch (column.head.type) { case TypeDef.IntType: case TypeDef.BoolType: case TypeDef.FloatType: case TypeDef.StringType: case TypeDef.ListIntType: case TypeDef.ListFloatType: case TypeDef.ListStringType: case TypeDef.LuaTableType: CSVaribles varible = new CSVaribles(); varible.type = column.head.type; varible.name = column.head.name; if (curStruct != null) { if (curStruct.NotContains(varible)) { curStruct.varibles.Add(varible); } } else { varibles.Add(varible); } break; case TypeDef.StructType: if (!string.IsNullOrEmpty(column.head.name)) { if (curStruct != null) { System.Console.WriteLine("struct异常,列:" + (i + 1)); return(false); } if (curListSturct == null) { curStruct = new CSStruct(); curStruct.name = column.head.name; structs.Add(curStruct); } else { if (curListSturct.csStruct == null) { curStruct = new CSStruct(); curStruct.name = curListSturct.name; curListSturct.csStruct = curStruct; } curStruct = curListSturct.csStruct; curListSturct.count++; } } else { if (curStruct == null) { System.Console.WriteLine("struct异常,列:" + (i + 1)); return(false); } if (curListSturct == null) { varible = new CSVaribles(); varible.type = column.head.type; varible.csStruct = curStruct; varibles.Add(varible); } curStruct = null; } break; case TypeDef.ListType: if (!string.IsNullOrEmpty(column.head.name)) { if (curListSturct != null) { System.Console.WriteLine("list异常,列:" + (i + 1)); return(false); } curListSturct = new CSListStruct(); curListSturct.name = column.head.name; structLists.Add(curListSturct); } else { if (curListSturct == null) { System.Console.WriteLine("struct异常,列:" + (i + 1)); return(false); } varible = new CSVaribles(); varible.type = column.head.type; varible.csListStruct = curListSturct; varibles.Add(varible); curListSturct = null; } break; default: System.Console.WriteLine(i + ":不支持的数据类型:" + column.head.type + "," + column.head.name); break; } } return(true); }