Пример #1
0
        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");
        }
Пример #2
0
        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 + "---->导表完成!");
        }