4、C++程序读取Lua的Table——2

无限制浏览:地址
    在Lua中存在两种访问Table成员的方法。一种是Table.ItemNamed,这个我们在《C程序操作Lua的Table——1》中介绍过了。下来我们来介绍另一种访问Table成员的方法——Table[index]。
    也简单,废话少说,上代码。

代码

LuaTable2.lua

 luat_Test = {123, 456}

LuaTable2.cpp

#include <lua.hpp>
int main (int argc, char * argv[])
{
    lua_State* L = lua_open();
    luaopen_base(L);
    
    luaL_dofile(L, "LuaTable2.lua");

    lua_getglobal(L, "luat_Test");            // 将luat_Test压入栈
    lua_rawgeti(L, -1, 2);                    // 将luat_Test[2]压入栈
    printf("%d\n", (int)lua_tonumber(L, -1)); // 取出luat_Test[2]的值并打印。

    lua_close(L);
}

makefile

CPPFLAG=`pkg-config --cflags lua5.1`
LDFLAG=`pkg-config --libs lua5.1`
CC=g++
all : LuaTable2
LuaTable2 : LuaTable2.cpp
    $(CC) -o $@ $(CPPFLAG) $(LDFLAG) $<    

测试环境

类型
操作系统Ubuntu 10.10
lua5.1.4

运行结果

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 Unity Easysave3 插件保存和读取 LuaTable 类型数据,你需要将 LuaTable 转换为字符串类型数据,然后将其保存到本地或云端。 以下是一个保存和读取 LuaTable 数据的示例代码: ```csharp using UnityEngine; using LuaInterface; using PathologicalGames; public class SaveLuaTable : MonoBehaviour { LuaTable luaTable; void Start() { // 创建 LuaTable 数据 luaTable = LuaScriptMgr.Instance.DoFile("TestTable.lua") as LuaTable; // 将 LuaTable 转换为字符串类型数据 string luaTableStr = ESSerializer.SerializeLuaTable(luaTable); // 保存字符串类型数据到本地 ES3.Save<string>("luaTable", luaTableStr); // 读取本地保存的字符串类型数据 string loadedLuaTableStr = ES3.Load<string>("luaTable"); // 将字符串类型数据转换回 LuaTable 类型数据 LuaTable loadedLuaTable = ESUtility.LuaTableFromString(loadedLuaTableStr); } } ``` 在上述代码中,我们首先创建了一个 LuaTable 数据,然后使用 `ESSerializer.SerializeLuaTable()` 方法将其转换为字符串类型数据。接着,我们使用 `ES3.Save()` 方法将字符串类型数据保存到本地。在读取本地保存的数据时,我们使用 `ES3.Load()` 方法读取保存的字符串类型数据。最后,我们使用 `ESUtility.LuaTableFromString()` 方法将读取的字符串类型数据转换回 LuaTable 类型数据。 需要注意的是,Unity Easysave3 插件不支持直接保存和读取 LuaTable 类型数据,因此我们需要将其转换为字符串类型数据进行保存和读取
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值