文档章节

lua 数据以table表的形式存储

80后小子
 80后小子
发布于 2015/03/05 10:50
字数 360
阅读 1346
收藏 2

  出处:http://blog.sina.com.cn/s/blog_991afe570101rkfh.html

  感谢,原文作者的无私奉献!

实现思路:

       table表 ------> 转为字符串(这里利用json库)------->存储--------->读取

达成目的:

  • 解决字符串拼接问题

  • 用最简单办法将table表存入文件,方便游戏存档、游戏关卡等等

  •  

第一步:将table表转为json格式的字符串

导入头文件

--2.2.5的quick版本已经在框架载入时完成了json模块的初始化,所以这里就不需要做导入头文件的操作 
--local json = require("framework.shared.json")


创建一个表格

 local t = {}               
 t.test = "OKOK"
 t.net = "okok"
 t.inner = {}
 t.inner.test = "OKOK8888"
 
 --主要使用以下两个方法进行实现
 local wirtjson =json.encode(t)--转换成json格式
 local readjson =json.decode(wirtjson)--转成原来存储前的格式

注意:以下这两个方法都可以获取到当前电脑上工程的根目录LUA学习笔记-----数据以table表的形式存储

1,device.writablePath  

2device.cachePath  

第二步:写入文件,进行存储并读取

 第一种方法:lua io 库     

把文件保存到当前工程根目录下:

local test = assert(io.open(device.writablePath .. "/formation.lua", "w"))
test:write(wirtjson)
test:close()

读取整个文件:

 local test = io.open(device.writablePath .. "/formation.lua", "r")
 local readjson= test:read("*a")
 local  table =json.decode(readjson)
 test:close()

 

第二种方法:CCUserDefault

把文件保存到当前工程根目录下:

CCUserDefault:sharedUserDefault():setStringForKey("SaveFightArray1", wirtjson)
CCUserDefault:sharedUserDefault():flush()

读取整个文件:

local ecord1 = CCUserDefault:sharedUserDefault():getStringForKey("SaveFightArray1")
local table =json.decode(record1)

本文转载自:http://blog.sina.com.cn/s/blog_991afe570101rkfh.html

共有 人打赏支持
80后小子
粉丝 4
博文 84
码字总数 23028
作品 0
海淀
程序员
私信 提问
Lua系列--pairs和ipairs

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wwlcsdn000/article/details/81291756 Lua系列–pairs和ipairs Lua中Table的存储方式 在看二者的区别之前,我...

那远远的云端
07/30
0
0
lua table引用问题

一,基础 1,在lua中,table只是传递引用(即两个变量都指向同一片内存空间),所以不能用简单的 "=" 来copy两个表,并试图修改一个表中的值。 tb = {}tb.a = 11tb.b = 22tb_ref = tbfuncti...

leejia1989
2017/07/07
0
0
Lua4.0 参考手册(一)1-3

说明: 这个文档是 doc 目录里的 manual.html 文件。 原文版权归原作者所有,这篇翻译只是作为学习之用。如果翻译有不当之处,请参考原文。 -------------------以下是正文-----------------...

晓寒
2014/10/30
0
0
Redis进阶实践之七Redis和Lua初步整合使用

Redis进阶实践之七Redis和Lua初步整合使用 一、引言 Redis学了一段时间了,基本的东西都没问题了。从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何...

morpheusWB
09/13
0
0
Openresty最佳案例 | 第2篇:Lua入门

转载请标明出处: http://blog.csdn.net/forezp/article/details/78616622 本文出自方志朋的博客 什么是lua Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的...

forezp
2017/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mariadb二进制包安装,Apache安装

安装mariadb 下载二进制包并解压 [root@test-a src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.t......

野雪球
今天
3
0
ConcurrentHashMap 高并发性的实现机制

ConcurrentHashMap 的结构分析 为了更好的理解 ConcurrentHashMap 高并发的具体实现,让我们先探索它的结构模型。 ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment。HashEnt...

TonyStarkSir
今天
3
0
大数据教程(7.4)HDFS的java客户端API(流处理方式)

博主上一篇博客分享了namenode和datanode的工作原理,本章节将继前面的HDFS的java客户端简单API后深度讲述HDFS流处理API。 场景:博主前面的文章介绍过HDFS上存的大文件会成不同的块存储在不...

em_aaron
昨天
3
0
聊聊storm的window trigger

序 本文主要研究一下storm的window trigger WindowTridentProcessor.prepare storm-core-1.2.2-sources.jar!/org/apache/storm/trident/windowing/WindowTridentProcessor.java public v......

go4it
昨天
7
0
CentOS 生产环境配置

初始配置 对于一般配置来说,不需要安装 epel-release 仓库,本文主要在于希望跟随 RHEL 的配置流程,紧跟红帽公司对于服务器的配置说明。 # yum update 安装 centos-release-scl # yum ins...

clin003
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部