static void Main(string[] args) { using (var stream = new FileStream("../../Config.bin", FileMode.Open)) { stream.Position = 0; var reader = new tabtoy.DataReader(stream); var config = new table.Config(); var result = reader.ReadHeader(config.GetBuildID()); if (result != FileState.OK) { Console.WriteLine("combine file crack!"); return; } table.Config.Deserialize(config, reader); // 直接通过下标获取或遍历 var directFetch = config.Sample[2]; // 添加日志输出或自定义输出 config.TableLogger.AddTarget(new tabtoy.DebuggerTarget()); // 取空时, 当默认值不为空时, 输出日志 var nullFetchOutLog = config.GetSampleByID(0); } }
static void Main(string[] args) { using (var stream = new FileStream("../../../../Config.bin", FileMode.Open)) { stream.Position = 0; var reader = new tabtoy.DataReader(stream, stream.Length); if (!reader.ReadHeader( )) { Console.WriteLine("combine file crack!"); return; } var config = new table.Config(); table.Config.Deserialize(config, reader); // 直接通过下标获取或遍历 var directFetch = config.Sample[2]; // 添加日志输出或自定义输出 config.TableLogger.AddTarget(new tabtoy.DebuggerTarget()); // 取空时, 当默认值不为空时, 输出日志 var nullFetchOutLog = config.GetSampleByID(0); // Vertical: "true"是的配置表, 直接取配置 var c = config.GetVertical(); } }
// 本例子需要第三方库支持 https://github.com/davyxu/MemQLSharp // 将第三方库与tabtoy放在同层即可 static void Main(string[] args) { using (var stream = new FileStream("../../../../Config.bin", FileMode.Open)) { stream.Position = 0; var reader = new tabtoy.DataReader(stream); if (!reader.ReadHeader()) { Console.WriteLine("combine file crack!"); return; } // 读取配置 var config = new table.Config(); config.Deserialize(reader); // 简单范围查询 var cmql = new table.ConfigMemQL(config); foreach (var v in cmql.NewQuerySample() .Where("ID", ">=", (Int64)101) .Where("ID", "<=", (Int64)102) .Result()) { var def = v as table.SampleDefine; Console.WriteLine(def.ID); } // 枚举查询 foreach (var v in cmql.NewQuerySample() .Where("Type", ">=", table.ActorType.Monkey) .Where("Type", "<=", table.ActorType.Hammer) .Result()) { var def = v as table.SampleDefine; Console.WriteLine(def.Type); } } }