导表工具

 

            //===============生成lua的DBModel=====================
            sbr.Clear();
            sbr.Append("--数据访问\r\n");
            sbr.AppendFormat("{0}DBModel = {{ }}\r\n", fileName);
            sbr.Append("\r\n");
            sbr.AppendFormat("local this = {0}DBModel;\r\n", fileName);
            sbr.Append("\r\n");
            sbr.AppendFormat("local {0}Table = {{ }}; --定义表格\r\n", fileName.ToLower());
            sbr.Append("\r\n");
            sbr.AppendFormat("function {0}DBModel.LoadList()\r\n", fileName);
            sbr.Append("    GameInit.AddTotalLoadTableCount();\r\n");
            sbr.AppendFormat("    CS.YouYou.GameEntry.Lua:LoadDataTable(\"{0}\", this.LoadFormMS);\r\n", fileName);
            sbr.Append("end\r\n");
            sbr.Append("\r\n");
            sbr.AppendFormat("function {0}DBModel.LoadFormMS(ms)\r\n", fileName);
            sbr.Append("    local rows = ms:ReadInt();\r\n");
            sbr.Append("    ms:ReadInt();\r\n");
            sbr.Append("\r\n");
            sbr.Append("    for i = 0, rows, 1 do\r\n");
            sbr.AppendFormat("        {0}Table[#{0}Table + 1] = {1}Entity.New(\r\n", fileName.ToLower(), fileName);

            string str = "";
            for (int i = 0; i < dataArr.GetLength(0); i++)
            {
                if (dataArr[i, 1].Equals("byte", StringComparison.CurrentCultureIgnoreCase))
                {
                    str += string.Format("                ms:Read{1}(),\r\n", dataArr[i, 0], ChangeTypeName(dataArr[i, 1]));
                }
                else
                {
                    str += string.Format("                ms:Read{1}(),\r\n", dataArr[i, 0], ChangeTypeName(dataArr[i, 1]));
                }
            }
            str = str.TrimEnd(',', '\r', '\n');
            sbr.AppendFormat("{0}\r\n", str);
            sbr.Append("        );\r\n");
            sbr.Append("    end\r\n");
            sbr.Append("    GameInit.LoadOneTableComplete();\r\n");
            sbr.Append("end\r\n");
            sbr.Append("\r\n");
            sbr.AppendFormat("function {0}DBModel.GetList()\r\n", fileName);
            sbr.AppendFormat("    return {0}Table;\r\n", fileName.ToLower());
            sbr.Append("end");
            sbr.Append("\r\n");
            sbr.Append("\r\n");
            sbr.AppendFormat("function {0}DBModel.GetEntity(id)\r\n", fileName);
            sbr.AppendFormat("    local ret = nil;\r\n");
            sbr.AppendFormat("    for i = 1, #{0}Table, 1 do\r\n", fileName.ToLower());
            sbr.AppendFormat("        if ({0}Table[i].Id == id) then\r\n", fileName.ToLower());
            sbr.AppendFormat("            ret = {0}Table[i];\r\n", fileName.ToLower());
            sbr.AppendFormat("            break;\r\n");
            sbr.AppendFormat("        end\r\n");
            sbr.AppendFormat("    end\r\n");
            sbr.AppendFormat("    return ret;\r\n");
            sbr.AppendFormat("end");

            using (FileStream fs = new FileStream(string.Format("{0}/{1}DBModel.bytes", OutLuaFilePath, fileName), FileMode.Create))
            {
                using (StreamWriter sw = new StreamWriter(fs))
                {
                    sw.Write(sbr.ToString());
                }
            }

 

--数据访问
ChapterDBModel = { }

local this = ChapterDBModel;

local chapterTable = { }; --定义表格

function ChapterDBModel.LoadList()
    GameInit.AddTotalLoadTableCount();
	--传入表名,
    CS.YouYou.GameEntry.Lua:LoadDataTable("Chapter", this.LoadFormMS);
end

function ChapterDBModel.LoadFormMS(ms)  
    local rows = ms:ReadInt();

    for i = 0, rows, 1 do
        chapterTable[#chapterTable + 1] = ChapterEntity.New(
                ms:ReadInt(),
                ms:ReadUTF8String(),
                ms:ReadInt(),
                ms:ReadUTF8String(),
                ms:ReadFloat(),
                ms:ReadFloat()
        );
    end
    GameInit.LoadOneTableComplete();
end

function ChapterDBModel.GetList()
    return chapterTable;
end

function ChapterDBModel.GetEntity(id)
    local ret = nil;
    for i = 1, #chapterTable, 1 do
        if (chapterTable[i].Id == id) then
            ret = chapterTable[i];
            break;
        end
    end
    return ret;
end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值