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 :

Executer les instructions écritent dans un fichier xml


Sujet :

C++

  1. #1
    Membre régulier

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Points : 117
    Points
    117
    Par défaut Executer les instructions écritent dans un fichier xml
    Bonjour
    Pour un projet, je dois parser un document XML et en interpréter une certaine partie, contenant des instructions c++.

    Alors première question: ça va peut-être vous sembler ridicule, mais je ne connais pas de fonction qui évalue une chaîne de caractère et exécute les instructions qu'elle contient. En existe-il une toute faite, toute jolie et dans quelle bibliothèque?

    Seconde question: Dans l'un des fichiers XML que j'ai comme exemple à parser, il y a cette lignes:
    et dans un autre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const int N = 40; typedef scalar[N] pid_t;
    C'est du c++ othodoxe ça?

    Merci d'avance

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    du C# ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const int N = 40; typedef scalar[N] pid_t;
    C'est du C++, voir du C

    Comment cela tu ne sait pas évaluer une chaîne de caractère et exécute les instructions qu'elle contient???

    Peut tu être plus précis??

  3. #3
    Membre régulier

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Points : 117
    Points
    117
    Par défaut
    Mais scalar, c'est un type déjà existant?
    Parce que moi mon compilateur ne le connais pas.

    En fait, ce que je veux dire, c'est que je récupère une liste d'instruction c++ sous forme de chaine de caractère depuis le fichier xml, et j'aimerai bien que mon programme les execute, comme si c'était des instructions normales et pas des chaines de caractère, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lafonctionquejecherche("int a; int b =a+1;")
    ferai, à l'execution:
    J'espère avoir été assez clair

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Tetrix Voir le message
    Mais scalar, c'est un type déjà existant?
    Parce que moi mon compilateur ne le connais pas.

    En fait, ce que je veux dire, c'est que je récupère une liste d'instruction c++ sous forme de chaine de caractère depuis le fichier xml, et j'aimerai bien que mon programme les execute, comme si c'était des instructions normales et pas des chaines de caractère, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lafonctionquejecherche("int a; int b =a+1;")
    ferai, à l'execution:
    J'espère avoir été assez clair
    C'est donc du scriptage que tu veut faire.

    Les morceau que tu récupère c'est du C++ ou un pseudo language qui s'en approche??
    Peut tu donner un exemple de fichier xml?

  5. #5
    Membre régulier

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Points : 117
    Points
    117
    Par défaut
    Et bien, j'aimerai bien que ce soit du c++ moi!
    Et ce serait logique, puisqu'en fait ces fichiers xml sont normalement utilisé avec un autre programme codé en c++ (avec une interface graphique en Java). Néanmoins, je n'en suis pas sur et comme je l'ai dit avant, je ne comprend pas certaines syntaxes, décrites plus haut.

    voici deux exemples de début du fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version='1.0' encoding='utf-8'?><!DOCTYPE nta PUBLIC '-//Uppaal Team//DTD Flat System 1.1//EN' 'http://www.it.uu.se/research/group/darts/uppaal/flat-1_1.dtd'><nta><declaration>// Fischer's mutual exclusion protocol.
     
    typedef int[1,6] id_t;
    int id;</declaration>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version='1.0' encoding='utf-8'?><!DOCTYPE nta PUBLIC '-//Uppaal Team//DTD Flat System 1.1//EN' 'http://www.it.uu.se/research/group/darts/uppaal/flat-1_1.dtd'><nta><declaration>// Fischer's mutual exclusion protocol.
     
    const int N = 40;
     
    typedef scalar[N] pid_t;
     
    bool set = false;
    pid_t id;
    </declaration>
    Voilà, à chaque fois c'est ce qui est dans l'élément déclaration que je veux scripter, si ça s'appelle bien comme ça, car ces déclarations de types sont nécessaires ensuite pour utiliser certaines variables présentées plus loin dans le document.

    Au cas où ça vous interesserait, voici le second fichiers en entier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <?xml version="1.0" encoding="utf-8" ?> 
      <!DOCTYPE nta (View Source for full doctype...)> 
    - <nta>
      <declaration>// Fischer's mutual exclusion protocol. 
    const int N = 40; 
    typedef scalar[N] pid_t; 
    bool set = false; 
    pid_t id;
    </declaration> 
    - <template>
      <name x="16" y="-8">P</name> 
      <parameter>const pid_t pid</parameter> 
      <declaration>clock x; const int k = 2;</declaration> 
    - <location id="id0" x="216" y="176">
      <name x="216" y="192">wait</name> 
      </location>
    - <location id="id1" x="216" y="48">
      <name x="216" y="16">req</name> 
      <label kind="invariant" x="240" y="32">x<=k</label> 
      </location>
    - <location id="id2" x="64" y="48">
      <name x="54" y="18">A</name> 
      </location>
    - <location id="id3" x="64" y="176">
      <name x="56" y="192">cs</name> 
      </location>
      <init ref="id2" /> 
    - <transition>
      <source ref="id2" /> 
      <target ref="id1" /> 
      <label kind="guard" x="104" y="24">!set</label> 
      <label kind="assignment" x="104" y="48">x = 0</label> 
      </transition>
    - <transition>
      <source ref="id1" /> 
      <target ref="id0" /> 
      <label kind="guard" x="144" y="72">x<=k</label> 
      <label kind="assignment" x="144" y="88">x = 0, id = pid, set = true</label> 
      </transition>
    - <transition>
      <source ref="id0" /> 
      <target ref="id1" /> 
      <label kind="guard" x="264" y="88">!set</label> 
      <label kind="assignment" x="264" y="104">x = 0</label> 
      <nail x="251" y="146" /> 
      <nail x="251" y="82" /> 
      </transition>
    - <transition>
      <source ref="id0" /> 
      <target ref="id3" /> 
      <label kind="guard" x="96" y="184">x>k && id==pid</label> 
      </transition>
    - <transition>
      <source ref="id3" /> 
      <target ref="id2" /> 
      <label kind="assignment" x="-8" y="104">set=false</label> 
      </transition>
      </template>
      <system>system P;</system> 
      </nta>

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Je déplace ton thread dans la partie C++ pour que tu est plus d'aide.

    Cherche script dans le forum. Tu trouvera plusieurs thread à ce sujet.

    Que va tu faire de l'exécution de ces morceaux de code?

  7. #7
    Membre régulier

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Points : 117
    Points
    117
    Par défaut
    Yo

    Je te remercie, mais comme tu t'en doute, si je fais une recherche avec le mot "script" sur le forum, ça me trouve quasiment la moitiée des topics postés. (Je viens d'essayer d'affiner au maximum ma recherche mais je ne trouve rien).

    En fait, j'ai écrit un programme qui fabrique une classe template_automaton en utilisant les éléments enfants de l'élement <template> (voir le code xml entier, plus haut). Maintenant, je dois me débrouiller pour instancier mes automatons, en utilisant les variables décrites dans l'élement (en haut).

    Sauf que dans certains cas, comme celui donné en exemple, j'ai d'abord besoin de récupérer la description des types utilisés, qui se trouve dans <declaration>, parce que sinon je ne connais pas le type des variables de <parameter>.

    J'espère ne pas avoir été trop confus.

  8. #8
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    si tu ne comprend pas trop ce qu'es le script, cherche LUA sour google ou regarde ce lien sur QtScript
    http://qt.developpez.com/doc/latest/...t.html#details

    Il en existe beaucoup d'autre mais je ne m'y connait pas trop.

  9. #9
    Membre régulier

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Points : 117
    Points
    117
    Par défaut
    Ok, je me renseigne dru sur le sujet.

    Et pour mes instructions qui ne sont apparemment pas du C++, vous pensez donc à du C# ?

Discussions similaires

  1. [XQUERY] sauvegarder les résultats xquery dans un fichier XML
    Par amelbtb dans le forum XQUERY/SGBD
    Réponses: 3
    Dernier message: 29/05/2012, 15h09
  2. Réponses: 2
    Dernier message: 26/04/2012, 16h01
  3. Réponses: 21
    Dernier message: 22/07/2009, 14h19
  4. [Encoding] Comment stocker les caractères arabes dans un fichier XML?
    Par merci_tous dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 13/02/2007, 16h57
  5. Réponses: 2
    Dernier message: 16/08/2006, 14h47

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