IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[lua] Lire une table lua avec index type string dans du c


Sujet :

C

  1. #1
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut [lua] Lire une table lua avec index type string dans du c
    Hello,

    Je sais comment lire un tableau lua dans du c quand les index sont de types numérique (j'utilise un while ... next (indice), comme indique dans la doc)


    En lua, il a 'pairs':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fruits = { apple="green", orange="orange", banana="yellow" }
    for k,v in pairs(fruits) do print(k,v) end
    apple green
    orange orange
    banana yellow

    --------------------------

    Comment faire la même chose dans du code c, pour récupérer les clé/valeur ?
    J'ai bien réussi a récupérer les valeurs avec les clefs en dur, mais comment faire pour itérer sur tout le tableau pour tout re-mapper dans une structure de donnée c ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       lua_getglobal(L,"fruits");			//L 1 is table object
       int t=1;
     
       if(lua_istable(L, t)){
    			lua_pushstring(L,"apple");		    //push the desired STRING on the top of the stack 
    			lua_gettable(L,-2);				
    			printf("valeur recupere a l'indice %s : %s\n", "apple", lua_tostring(L,-1));
    			lua_pop(L,1);	//pop the table value
       }
    valeur recupere a l'indice apple : green

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 107
    Points : 122
    Points
    122
    Par défaut
    à la page http://www.lua.org/manual/5.1/manual.html, j'ai trouvé la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int lua_next (lua_State *L, int index);
    cela peut t'intéresser.

  3. #3
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    merci, mais lua_next se base sur un index, et mon tableau se présente sous la forme d'un dictionnaire...

Discussions similaires

  1. [Débutant] VB - Lire une table Microsoft Access avec linq
    Par HULKHULK83 dans le forum VB.NET
    Réponses: 5
    Dernier message: 21/12/2014, 11h42
  2. lire une table Access avec VBA
    Par ivoratparis dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/06/2013, 16h56
  3. Lire une table Excel avec fusion de cellules
    Par GLDavid dans le forum C#
    Réponses: 1
    Dernier message: 13/11/2012, 10h51
  4. [Tableaux] Lire une table simple avec foreach
    Par dreeve dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2008, 18h38
  5. cellule d'une table visible avec focus dans div scrollable
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo