Forum Programmation.c++ parser un fichier texte.

Posté par  .
Étiquettes : aucune
0
24
fév.
2006

bonjour,

je dois convertir un fichier texte en objets memoires (les classes sont deja pretes), le probleme c'est que je n'ai jamais fais quelque chose de ce genre, alors j'ai besoin de vos conseils, astuces, liens …

le fichier est de la forme :

obj1= {

val1 = blah

val2 = blah

list1 = { autreobj autreobj … }

sousobj = {

val3 = blah

val4 = blah

}

}

merci d'avance.

  • # Conseil No1 : programme récursif

    Posté par  . Évalué à 2.

    Vu que tu semble avoir des objets imbriqué il pourraient sembler tout indiqué d'utiliser de la récursivité dans ton parseur. Cela t'éviteras surement d'obtenir un code difficile à comprendre et horrible à maintenir.

    Cependant il existe d'excellente lib de serialisation/deserialistaion. Peut etre n'as tu pas le choix sur le format de fichier. Sinon regarde de ce coté là tu y gagnerais surement du temps.
    • [^] # Re: Conseil No1 : programme récursif

      Posté par  . Évalué à 1.

      le format m'est imposé, ce qui ecarte malheureusement la serialisation.

      en fouinant sur google j'ai trouvé finalement que flex corresponds à peu pres à ce qu'il me faut. j'aurais jamais imaginé m'en servir auparavant.
      • [^] # Re: Conseil No1 : programme récursif

        Posté par  (site web personnel) . Évalué à 2.

        Si le format est imposé, il y a effectivement le grand classique lex/yacc (/ flex/bison), mais aussi des alternatives un chouilla plus simple à utiliser comme par exemple :
        - boost.spirit (requiert un compilo C++ récent, une grammaire pas trop compliqué (ou ne pas être préssé))
        - ANTLR

        Il doit y en avoir d'autres.
      • [^] # Re: Conseil No1 : programme récursif

        Posté par  . Évalué à 1.

        flex ne resprèsente que la partie syntaxe (grammaire si tu préfère) de ton analyse. Tu dois l'utiliser avec yacc pour l'analyse lexicale (ou orthographe).

        Il est vrai qu'il s'agit d'un bon choix. Je n'y avais pas pensé parce que je l'utilise assez rarement (en fait je l'ai utilisé qu'une seule fois).

        A creuser donc !!!
        • [^] # Re: Conseil No1 : programme récursif

          Posté par  . Évalué à 2.

          heu ... comment dire ... flex (pour fast lexical) s'occupe de reconnaitre les mots appartenant au langage (le vocabulaire donc) et bison s'occupe de la grammaire.

          Mais sinon, c'est un bon choix ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.