|
应该是查理猫写的,也可能是另外的大大写的,反正是原来的修罗补丁里面的存档函数。总之,很强大,很有效,很好用。- function SaveTableContent(file, obj) --不包含物品数据的存档数据类型判断
- local szType = type(obj); --判断对象类型
- -- print(szType); --输出
- if szType == "number" then --如果类型是数字
- file:write(obj); --直接写入
- elseif szType == "string" then --如果类型是字符串
- file:write(string.format("%s", obj)); --以字符串形式写入
- elseif szType == "table" then --如果类型是表格
- --把table的内容格式化写入文件
- --file:write("{\n");
- file:write("{"); --首先写入一个{
- for i, v in pairs(obj) do --逐个元素判断
- --file:write("["); --起始加上[
- --SaveTableContent(file, i);--写入下标值
- --file:write("]=\n"); --写入]并换行
- SaveTableContent(file, v);
- --file:write(", \n"); --每写完一个表格数据换行
- file:write(",");
- end
- --file:write("\n"); --写入最后一个表格数据的时候换行
- else
- error("can't serialize a "..szType);
- end
- end
- function SaveTableContent2(file, obj) --针对物品数据的判断
- local szType = type(obj); --判断对象类型
- -- print(szType); --输出
- if szType == "number" then --如果类型是数字
- file:write(obj); --直接写入
- elseif szType == "string" then --如果类型是字符串
- file:write(string.format("%s", obj)); --以字符串形式写入
- elseif szType == "table" then --如果类型是表格
- file:write("{"); --首先写入一个{
- for i, v in pairs(obj) do --逐个元素判断
- SaveTableContent2(file, v);
- file:write(",");
- end
- file:write("}");--每维完成后加一个}
- else
- error("can't serialize a "..szType);
- end
- end
复制代码 用这个保存数据再dofile很犀利。
|
|