static void CheckAllTabFileDataWithLua() { Lua luaVm = new Lua(); DirectoryInfo dir = new DirectoryInfo(Config.Instance.GetParam(Config.SrcTabFilePath)); FileInfo[] files = dir.GetFiles("*.txt", SearchOption.AllDirectories); int filesCount = files.Length; for (int i = 0; i < filesCount; i++) { FileInfo fileInfo = files[i]; bool isInFilter = Config.Instance.IsInDataCheckerFilter(fileInfo.Name); if (isInFilter) { continue; } System.Console.WriteLine("(" + i + "/" + filesCount + ")加载原始表格---->" + fileInfo.Name); FileStream fs = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader sr = new StreamReader(fs); string content = sr.ReadToEnd(); sr.Close(); fs.Close(); TabFile tabFile = new TabFile(); string ret = tabFile.Check(content); if (!string.IsNullOrEmpty(ret)) { System.Console.WriteLine(fileInfo.Name + "---->表格存在错误,无法检查!错误:" + ret); return; } LuaFile luaFile = new LuaFile(); luaFile.UnpackFromTabFile(tabFile, true); string fileName = fileInfo.Name.Replace(".txt", ""); string exportContent = luaFile.ExportDataLuaFile(fileName, "Data"); UTF8Encoding utf8Encoding = new UTF8Encoding(); string utf8ExportContent = utf8Encoding.GetString(Encoding.ASCII.GetBytes(exportContent)); luaVm.DoString(utf8ExportContent); } System.Console.WriteLine("加载数据完成"); luaVm.DoFile(System.Environment.CurrentDirectory + "\\CheckList\\checklist.lua"); }
static void SingleExport(string filePath) { FileInfo fileInfo = new FileInfo(filePath); FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); byte[] temp = new byte[fs.Length]; fs.Read(temp, 0, (int)fs.Length); StreamReader sr = new StreamReader(fs); string content = GetText(temp); sr.Close(); fs.Close(); TabFile tabFile = new TabFile(); string ret = tabFile.Check(content); if (!string.IsNullOrEmpty(ret)) { System.Console.WriteLine(fileInfo.Name + "---->导表失败!错误:" + ret); return; } List <Config.ExportInfo> exportInfoList = Config.Instance.GetExportInfo(fileInfo.Directory.Name); for (int i = 0; i < exportInfoList.Count; i++) { Config.ExportInfo info = exportInfoList[i]; string fileName = fileInfo.Name.Replace(".txt", ""); string dirName = ""; if (!string.IsNullOrEmpty(info.dirName)) { dirName = "/" + info.dirName; } string exportContent = null; switch (info.type) { case Config.ExportType.CSFile: if (!string.IsNullOrEmpty(info.param)) { fileName = info.param; } CSFile csFile = new CSFile(); csFile.UnpackFromTabFile(fileName, tabFile); string csTemplate = Config.Instance.GetCSTemplate(csFile.fileName); exportContent = csFile.ExportStructCSFile(csTemplate); string csFilePath = Config.Instance.GetParam(Config.OutputCSFilePath) + dirName + "/" + csFile.fileName + ".cs"; SaveFile(csFilePath, exportContent, Encoding.UTF8); break; case Config.ExportType.DataTabFile: exportContent = tabFile.ExportDataTabFile(); string tabFilePath = Config.Instance.GetParam(Config.OutputTabFilePath) + dirName + "/" + fileName + ".txt"; SaveFile(tabFilePath, exportContent, Encoding.UTF8); break; case Config.ExportType.Lua: string moduleName = null; if (!string.IsNullOrEmpty(info.param)) { moduleName = info.param; } LuaFile luaFile = new LuaFile(); luaFile.UnpackFromTabFile(tabFile); exportContent = luaFile.ExportDataLuaFile(fileName, moduleName); string luaFilePath = Config.Instance.GetParam(Config.OutputLuaFilePath) + dirName + "/" + fileName + ".lua"; SaveFile(luaFilePath, exportContent, Encoding.UTF8); break; } } System.Console.WriteLine(fileInfo.Name + "---->导表完成!"); }