[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Q: accessing lua table from "c"
- From: "goldomyer" <lmyers11@...>
- Date: Fri, 14 Jun 2002 22:37:05 -0000
--- In lua-l@y..., "Danilo Tuler de Oliveira" <tuler@t...> wrote:
>
> t = {f="f1", s="s1"} -- t is a table
> t = {{f="f1", s="s1"}, {f="f2", s="s2"}} -- t is a vector of
tables
> t = {{f="f1", s="s1"}} -- t is a vector with
a single
> table
>
> If you want to support the #2 and #3 here is a code snippet.
>
>
> const char *LuaGetTable(char *item)
> {
> const char *s = NULL;
> lua_pushstring(S, item);
> lua_gettable(S, -2);
> if (lua_isstring(S, -1))
> {
> s = lua_tostring(S, -1);
> }
> lua_pop(S, 1);
> return s;
> }
>
> .
> .
> .
>
> lua_getglobal(S, "t");
> if (lua_istable(S, -1))
> {
> int i;
> int n = lua_getn(S, -1);
> for (i = 1; i <= n; i++)
> {
> lua_rawgeti(S, -1, i);
> printf("t.f = %s\n", LuaGetTable("f"));
> printf("t.s = %s\n\n", LuaGetTable("s"));
> lua_pop(S, 1);
> }
> }
>
> -- Danilo
Thank you very much ... that worked perfectly :)
joe