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

XML Discussion :

Font , Xml & structure de programme .


Sujet :

XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut Font , Xml & structure de programme .
    (Re)Bonjour a tous ! ( j'en entend qui dise "Encore lui ??" ... et bien Oui, encore moi )

    Je réfléchis, j'imagine, je code, je test, et au final , je tourne un peu en rond ;o)

    Je m'explique : je doit en gros, afficher a partir dun fichier sur le DD ( format a définir ) un texte . Celui-ci doit pouvoir être écrit et décrypté d'une maniére quelquonque, mais en suportant des "balises" de facons a pouvoir en régler la couleur, la taille ect ... enfin le formatage quoi !

    On m'a conseillé le XML, je vois l'avantage dans pas mal d'apli, et dans d'autre type de fichier de mon prog ; mais pour les dialogue j'ai du mal .

    ( je précise que mes connaissances en XML sont toute récente donc assez limité ) .

    Je procédais de la facons suivante :
    - un état d'initialisation ou je récupérais dans un string, tout le contenu de mon fichier txt, puis je le sotckait dans une var menbre d'une instance de ma classe cDialogue .
    -a chaque frame(!), j'analysais ce string ...

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "Bonjour[Color 255;0;0;1], je [/Color]m'apelle[Color 255;120;255;0.1] Adrien !![/Color]lol"
    On ma conseillé le xml ; mias j'ai un peu de mal a voir l'intéret pour le moment .
    Car au niveau syntaxique, je ne peut pas avoir de balises qui se ferme aprés leur "parent" . Donc ca m'oblige a quelques ligne supplémentarei d'ecriture .
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <texte font="Texte Dialogue">
     
    	Bonjour	<style r="255" v="0" b="0" a="1">tout le monde</style><style bold="true" italic="true">
    	Je m'appelle !</style><style italic="true" color ="red"> Adrien!!<style>
     
     
    </texte>
    Enfiin la ou j'en suis , j'ai 2 possibilité pour traité ca :
    - convertir tout ca en un string avec des balises ( voir ex 1 ) mais dans ce cas ou est l'interet de le faire en xml ?
    - parser mon txt a chaque frame ... je suis pas convaincu tu tout que je soit rentable ca !!!

    Dernier point : revoir complétement ma méthode ?
    Je pensais faire quelque chose du genre, batir une structure TRES simple du style liste, que je remplirai une fois pour toute lors de mon étape d'initilisation . ( aprés donc, analyse du texte, traitement des balises)
    Ainsi a chaque frame, je n'aurais qua lire ma list dans l'ordre chrologique et a suivre les instruction )

    du style

    list.push( glColor4ub(0,0,0,01) )
    list.push( glPrint(200,200,"hihi" )
    ect ...

    hum enfin c'est possible d'appeler une fonction en se servant d'un string comme ca ? heu je vais fouiller la dessus, la methode doit etre un peu différente pour empiler une fonction qqupart et la rapeller aprés
    enfin je suis preneur de tout conseils
    merci

    edit: hum pour cette derniére partie, j'ai souvent entendu parlé de pointeur de fonctions , sans jamais voir / chercher a voir ce que ca fesais , ca fait peut-etre ce que je recherche ? Enfin je dit ca au hasard complet ; je vais de ce pas me renseigner la desus ^^

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Effectivement, je pense que c'est une bonne solution. Décoder les balises à chaque frame c'est pas terriblement génial.
    Niveau implémentation : mieux que les pointeurs de fonctions, tu peux empiler des foncteurs dans ta liste.

    Mais vu que ce ne seront que des attributs, pourquoi ne pas stocker des bouts de texte avec à chaque fois leurs attributs associés, plutôt que des fonctions à executer ?

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Je vais me renseigner sur les pointeur / foncteur
    Mais vu que ce ne seront que des attributs, pourquoi ne pas stocker des bouts de texte avec à chaque fois leurs attributs associés, plutôt que des fonctions à executer ?
    tu aprle de l'effet de mes balises ? si oui, je ne pense pas ( enfin je n'ai pas tout en tête ) mais je en suis pas sur que ca rende la chose plus simple ?
    Car empiler un color=xx;xx;xx;xx en attribut ... ca m'oblige a le decoder tot ou tard , autant le décoder une fois pour toute et empiler un glColor4ub(..) non?

    bon je revient dans une petit heure
    merci des conseils .

    edit: les foncteur c'est ce dont on se sert dans les tri des conteneur de lz stl par ex?c'est ca? hum,je vois mal le rapport avec ce que je veut faire ^^
    edit2 : hum j'ai chercher un peu sur google mais je ne trouve toujorus pas de maniére de créer une structure contenant mes X fonctions a appeler ensuite .( il faut dire que c'est assez précis ... ca rend mal sous google lol )

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    tu aprle de l'effet de mes balises ? si oui, je ne pense pas ( enfin je n'ai pas tout en tête ) mais je en suis pas sur que ca rende la chose plus simple ?
    Car empiler un color=xx;xx;xx;xx en attribut ... ca m'oblige a le decoder tot ou tard , autant le décoder une fois pour toute et empiler un glColor4ub(..) non?
    Je voyais plus un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct GraphicString
    {
        Color color;
        bool bold;
        bool italic;
        ...
    };
    Puis avant d'afficher chaque string, tu envoies ses attributs à ton gestionnaire de rendu.

    dit: les foncteur c'est ce dont on se sert dans les tri des conteneur de lz stl par ex?c'est ca? hum,je vois mal le rapport avec ce que je veut faire ^^
    Ca permet de manière plus générale de stocker des objets qui seront en fait des fonctions + leurs paramètres. Voir boost::function par exemple.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    on m'a renvoyé sur boost::bind ; je vais eassyer d'installer boost et de voir ce que ca donne, je reveint si je rencontre des pb

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    hum j'ai des erreur de compilation sur un exemple tout simple en utilisant boost::bind ... le truc bizzare c'est que ces erreurs sont dans le bind.cpp ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    c:\Microsoft Visual Studio .NET 2003\Vc7\include\boost\bind.hpp(62): error C2039: 'result_type' : is not a member of 'operator``global namespace''
     
    c:\Microsoft Visual Studio .NET 2003\Vc7\include\boost\bind.hpp(62): error C2146: syntax error : missing ';' before identifier 'type'
     
    c:\Microsoft Visual Studio .NET 2003\Vc7\include\boost\bind.hpp(62): error C2825: 'F::result_type': cannot form a qualified name
     
    c:\Microsoft Visual Studio .NET 2003\Vc7\include\boost\bind.hpp(62): error C2955: 'boost::_bi::type' : use of class template requires template argument list
     
    c:\Microsoft Visual Studio .NET 2003\Vc7\include\boost\bind.hpp(62): fatal error C1903: unable to recover from previous error(s); stopping compilation
    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include <boost/function.hpp>
    #include <boost/bind.hpp>
    ....
     std::vector< boost::function<void (void)>  > vec ;
    ... dans le .cpp
    vec.push_back( boost::bind(glColor3ub, 0, 0, 0) );

    EDIT ; tant que j'y suis, on m'a conseillé de regardé du coté de boost::signal , ce que j'ai fait, et ca a l'air prometteur pour ce que je veut faire !
    Par contre, je n'arrive pas a inclure le fichier signal.hpp a mon projo .
    J'ai une erreur de linkage, je précise que j'ai juste copier/coller le rep boost dans mon rep include . Il semble que certain fichier ont besoin d'etre "compilé, linké, builder, prémaché " ou je ne sais quoi, mais que je ne suis jamais arrivé a faire , j'espére que ce n'est pas le cas de signals

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Une partie de ces erreur ont été corrigé avec l'ajout dun <void> aprés bind .

    Par contre si j'essaie sur une autre fonction j'ai des erreurs de partout ( notament une fonction menbre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vec.push_back( boost::bind<void(&cTexteDialogue::TraiterTexte, "lol") );
    et du coté de "signal" c'est toujours l'impasse ... je m'y remet, je vous tient au courant .

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Certaines bibliothèques de boost nécessitent d'être compilées, ça doit être le cas de signal. La compilation / installation de boost se fait assez facilement avec bjam.

    Pour tes erreurs... Je ne peux pas t'aider mais potasse bien la doc

  9. #9
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    Bon essayons de faire simple, j'ai juste pour compiler tout ca a mettre le fichier bjam.exe dans le repertoire boost_1_32_0 et a l'éxécuter c'est ca?
    En pratique, il n'aime pas car ( je supose ) mon compilateur vc7 n'est pas installer dans le rep par défaut ... et je tourne en rond pour trouver OU exactment on change ce path ( j'ai beau tourner et retourner en rond le tutorial du site officiel je ne parvient pas a trouver ... )

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Lis bien le "Getting started", c'est assez détaillé et bien expliqué.

    The user sets up all of the environment for each toolset he wants to use in the normal way. For example, for Microsoft VC++, ...VC98/Bin or .../VC7/Bin is in the PATH environment variable, VCVARS32.BAT or VSVARS32.BAT has been invoked, etc.

  11. #11
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    J'ai lu cette partie , mais mon anglais doit laisser a désirer , ou alors c'est pas clair , enfin en fouillant et testant un peu, j'ai trouvé qqupart un endroit ou modif le path . ( vc7_1.jam )

    Et la, j'ai lancé bjam.exe, c'est entrain visiblement de compiler, et c'est aeez long je vais bien voir si ca marche ^^

  12. #12
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Par défaut
    et hop, l'include de signal ne pose plus de probléme
    *snif enfin j'ai réussi a compiler et a installer cette fichu lib ( boost )*
    rho ca fait plezir
    Je m'attele demain a trouver mon bonheur dans tout ca :p
    merci

Discussions similaires

  1. [débutant]Pb de structure du programme
    Par Tymk dans le forum C++
    Réponses: 7
    Dernier message: 03/07/2008, 08h56
  2. Conseils sur structure de programme
    Par RR instinct dans le forum Langage
    Réponses: 6
    Dernier message: 21/09/2006, 14h44
  3. [XML] Bonne structure ?
    Par Christophe Charron dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 22/05/2006, 11h20
  4. [XML] ma structure est t-elle bonne ?
    Par guy2004 dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 16/03/2006, 11h24
  5. Réponses: 3
    Dernier message: 03/06/2003, 13h16

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