将棋牌录像与战绩进行本地化存储
lua class.cpp
下定义
int WriteDataToFile(lua_State* pArgs)
{
string sPath = Lua_Tool::GetString(pArgs, 1);
void* pUserData = Lua_Tool::GetUserData(pArgs, 2);
int nSize = Lua_Tool::GetInteger(pArgs, 3);
Data data;
data.copy((unsigned char*)pUserData, nSize);
FileUtils::getInstance()->removeFile(sPath);
FileUtils::getInstance()->writeDataToFile(data, sPath);
return 0;
}
int ReadDataFromFile(lua_State* pArgs)
{
string sPath = Lua_Tool::GetString(pArgs, 1);
Data data = FileUtils::getInstance()->getDataFromFile(sPath);
int nSize = data.getSize();
unsigned char* pUserData[10240] = { 0 };
memcpy(pUserData, data.getBytes(), nSize);
Lua_Tool::PushUserData(pArgs, pUserData);
Lua_Tool::PushInteger(pArgs, nSize);
return 2;
}
用来存储和读取录像的二进制存储数据
战绩读取成为Table后转化为json文件进行文档存储
local NewtbRecondData={};
if fileUtils:isFileExist(recondDirPath..tostring(uUserId)..".json") == false then
print(" buffer:ReadInt();error", recondDirPath..tostring(uUserId)..".json")
NewtbRecondData = {};
table.insert(NewtbRecondData,tbRecondData)
local json=json.encode(NewtbRecondData)
SaveRecond(json,size)
else
local file = fileUtils:getStringFromFile(recondDirPath..tostring(uUserId)..".json");
NewtbRecondData = json.decode(file)
local i=#NewtbRecondData
--判断是否为同一大局
if(tbRecondData.bigTime==NewtbRecondData[i].bigTime) then
PrintTable(NewtbRecondData[i].tbUserPoint["0"])
table.insert(NewtbRecondData[i].tbReplayTime,table.nums(NewtbRecondData[i].tbReplayTime),tbRecondData.tbReplayTime[0])
NewtbRecondData[i].nGroupNumber_Now=tbRecondData.nGroupNumber_Now
for j = 0, tbRecondData.nPersonNumber-1 do
table.insert(NewtbRecondData[i].tbUserPoint[tostring(j)].tbPoint,table.nums(NewtbRecondData[i].tbUserPoint[tostring(j)].tbPoint),tbRecondData.tbUserPoint[j].tbPoint[0])
NewtbRecondData[i].tbUserPoint[tostring(j)].sumPoint=tbRecondData.tbUserPoint[j].sumPoint
local json=json.encode(NewtbRecondData)
print("RecondData=",json);
SaveRecond(json,size)
end
--如果战绩过多则删除
if(#NewtbRecondData>50) then
print(#NewtbRecondData)
table.remove(NewtbRecondData,"1")
end
else
table.insert(NewtbRecondData,tbRecondData)
local json=json.encode(NewtbRecondData)
print("RecondData=",json);
SaveRecond(json,size)
end
注意战绩经过json.decode转化为Table后数组下标需字符串化(tostring)
function SaveRecond(buf,size)
local fileUtils = cc.FileUtils:getInstance();
local strWritablePath = fileUtils:getWritablePath();
local recondDirPath = strWritablePath.."recond/";
if fileUtils:isDirectoryExist(strWritablePath.."recond/") == false then
--不存在文件夹
if fileUtils:createDirectory(recondDirPath) == false then
--创建文件夹失败
return false;
end
end
local uUserId1 = tostring(g_tableUserData.nUserId1)
local uUserId2 = tostring(g_tableUserData.nUserId2)
local uUserId = uUserId1 .. uUserId2
local file = io.open(recondDirPath..uUserId..".json" ,"w+");
if file then
if file:write(tostring(buf).."\n") == nil then
return false;
end
io.close(file);
--WriteDataToFile(recondDirPath..tostring(nUserId) ,buf,size);
--DeleteRecond(30);
return true;
else
return false;
end
end
将棋牌录像与战绩进行本地化存储相关推荐
- 【量化交易笔记】2.数据本地化存储(CSV)
上一节介绍了数据获到的三种方式,从本节开始,选用baostock工具对后续操作. 本文继续作数据准备,具体介绍数据本地化的CSV文件格式. A股数据量比较大,需要进行筛选并分类保存. 基本思想 将采集 ...
- java如何获取storage_本地化存储Storage
为什么会引入Storage(sessionStorage,localStorage,globalStorage) Web storage的目的是克服由cookie带来的限制,当数据需要严格控制在客户端 ...
- OneNote笔记本软件,本地化存储,再也不用担心数据丢失
OneNote 2016笔记软件操作方便,使用很顺手.若你对使用网络链接分享不在意,那OneNote是不二之选.不能用链接分享,还是可以通过直接把笔记文件发给需要的人来分享. OneNote的好用就不 ...
- LiveGBS流媒体平台GB/T28181功能-安防监控录像服务端集中存储云上录像存储云端录像回看下载
LiveGBS功能-安防监控录像服务端集中存储云上录像存储云端录像回看下载 1.平台概述 2.平台录像回放 2.1.云端录像 2.1.1.存储位置 2.1.1.1.支持分布式存储 2.1.2.页面操作 ...
- LiveGBS流媒体平台-GBT28181国标视频平台录像存储设备录像回看解决方案
LiveGBS流媒体平台-GBT28181国标视频平台录像存储设备录像回看解决方案 1.平台概述 2.平台录像回放 2.1.设备录像 2.1.1.存储位置 2.1.1.1.下级硬件设备 2.1.1.2 ...
- html5 本地批量存储,HTML5本地存储
什么是HTML5存储? 简单地说,它是一种让web页面在浏览器端本地化存储键值对的方式.跟cookies一样,即使你从网站导航到别的网站,关掉了浏览器的tab页,退出了浏览器,数据依然存在:与cook ...
- 解读晦涩的存储技术缩略语
这些日子以来有关存储技术的缩略语漫天飞舞,而且每天都好象不断冒出更多的新鲜词,所以要熟谙这些小东西还真是费神.事到如今,我们经常收到读者的电子邮件,询问这些令人难以捉摸的缩略语,以及它们对网络存储又有 ...
- LC3视角:Kubernetes下日志采集、存储与处理技术实践
摘要: 在Kubernetes服务化.日志处理实时化以及日志集中式存储趋势下,Kubernetes日志处理上也遇到的新挑战,包括:容器动态采集.大流量性能瓶颈.日志路由管理等问题.本文介绍了" ...
- 海量数据下的存储技术,哪些模式靠得住?
高清.长周期呈现海量存储需求 高清已经在安防行业全面铺开应用.除了带给用户能够看得更清的良好视觉感受外,对存储容量的需求亦成几何式增长.例如: 前端IPC有130W到500W像素,码流也从有2Mbps ...
最新文章
- Runnable接口介绍(中文文档)
- 在matlab中有几种获得帮助的途径,matlab经典习题及解答
- Flask框架(flask中设置响应信息的方法,返回json数据的方法)
- 【Auto.js】使用命令删除图片后,更新图库缓存
- 穷人靠力,富人借力!看完你将明白一切!
- 计算机应用基础 辅助教学系统,计算机应用基础课程辅助教学及智能测评系统使用手册——网络版.docx...
- extjs4.2 前端读取对象的方法
- 如何保证软件质量?汽车软件基于模型开发的十个问题与质量工具推荐
- 大数据、人工智能带来的危机:科技巨头会毁掉我们的生活吗?
- IDOC的处理函数IDOC_INPUT_ORDERS的增强点的分析
- mysql router 介绍_MySQL Router 介绍篇
- git提交错分支处理
- 实时Linux内核(PREEMPT_RT)的编译安装以及测试
- 分享一个自用小功能--微信小程序二维码签到
- 学习漫画应该如何入门?其实掌握这5种漫画套路就可以啦
- Excel提取重复项
- Redis Redis Cluster 字段模糊匹配及删除
- 浅谈Vue渐进式的理解
- 【JAVA】逻辑控制
- asp.net中获取当前url的方法(转)