Erstellen einer Lua Tabelle aus einem const char **
Frage
Ich habe eine const char **
, die von unterschiedlicher Länge sein wird, aber ich mag einen Lua-Array aus dem const char **
erstellen.
ist Myconst char **
so etwas wie diese
arg[0]="Red"
arg[1]="Purple"
arg[2]="Yellow"
Ich brauche diese Anordnung zu einer globalen Tabelle in Lua zu konvertieren, aber ich bin nicht sicher, wie dieser zu gehen, wie ich zu manipulieren Lua bin nicht sehr gut.
Lösung
int main()
{
char* arg[3] = {
"Red",
"Purple",
"Yellow" };
//create lua state
Lua_state* L = luaL_newstate();
// create the table for arg
lua_createtable(L,3,0);
int table_index = lua_gettop(L);
for(int i =0; i<3; ++i )
{
// get the string on Lua's stack so it can be used
lua_pushstring(L,arg[i]);
// this could be done with lua_settable, but that would require pushing the integer as well
// the string we just push is removed from the stack
// notice the index is i+1 as lua is ones based
lua_rawseti(L,table_index,i+1);
}
//now put that table we've been messing with into the globals
//lua will remove the table from the stack leaving it empty once again
lua_setglobal(L,"arg");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow