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

Algorithmes et structures de données Discussion :

Décomposition d'une propriété : grammaire ?


Sujet :

Algorithmes et structures de données

  1. #1
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 471
    Points : 15 859
    Points
    15 859
    Par défaut Décomposition d'une propriété : grammaire ?
    Bonjour,

    Je réalise actuellement un programme qui lit un fichier de properties (Java) et récupère les propriétés qui sont de la forme "clé = valeur"
    Mon problème est que l'analyse d'une ligne contenant une propriété est assez importante étant donné que j'ai les conditions suivantes :
    - le délimiteur entre la clé et la valeur est "=", ":" ou " "
    - si un délimiteur doit se trouver dans une clé ou valeur, il est échappé "\=", "\:" "\ "
    - il y a des caractères unicode défini dans le fichier par "\uXXXX"
    - etc

    Etant donné que le format est assez compliqué, j'ai pensé utiliser une grammaire avec yacc mais étant donné que ma ligne peut être analysée simplement en lisant la chaîne de gauche à droite, il existe peut-être un meilleur algorithme.

    Qu'en pensez vous ?

    quelques précisions :
    - je n'ai pas d'expérience dans l'analyse de chaîne
    - le format exact des fichiers .properties est expliqué ici :
    http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream)
    (je ne gère pas le multilignes pour simplifier le problème)

  2. #2
    Candidat au Club
    Inscrit en
    Février 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut

    Moi je pencherais pour une analyse simple de chaine. En effet, pour définir une grammaire tu vas te casser la tête, et si tu as fait une liste exhaustive des trucs qui apparaissent sur une ligne dans ton précédent post, je pense qu'utiliser une grammaire serait chasser les mouches avec un bulldozer... Ca a pas l'air si compliqué que ca, un cas général et des exceptions?
    Mais c'est clair qu'en analyse simple de chaine tu vas te gaver, ca risque d'être chaud. Pas difficile mais emm....... J'ai été confronté au même genre de pb mais j'avais le choix du format de sauvegarde et j'ai fait du xml. Tu ne peux pas regarder de ce coté? Le fichier de propriétés initial ne peut pas être sauvé dans ce format au lieu d'un bête texte?

  3. #3
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    D'accord avec Ga1in. Soit tu migres tes données vers xml, soit tu te tapes de l'analyse de chaine, ce qui n'est pas la mort (plus d'accord avec Ga1in). Dans le temps on n'avait que l'analyse de chaine, et on s'en sortait très bien... Ici tu as besoin de lire par paire de caractères, and that's all avec quelques case if!

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 471
    Points : 15 859
    Points
    15 859
    Par défaut
    ok merci pour vos avis
    je vais faire une boucle alors qui récupère caractère par caractères avec un énoooorme switch à l'intérieur

    au sujet d'xml : j'ai déjà proposé ca mais le problème est que les ficheirs existent déjà et sont déjà utilisé chez tous les clients donc je dois faire quelque chose qui se greffe sur ce qui existe.

    merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Décomposition d'une chaine de caractères
    Par stephdiplo150 dans le forum C
    Réponses: 3
    Dernier message: 04/03/2004, 23h50
  2. Réponses: 10
    Dernier message: 19/02/2004, 13h58
  3. Réponses: 2
    Dernier message: 18/10/2003, 15h42
  4. Récupération valeur d'une propriété type TStrings
    Par Stéphane Vaillant dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2003, 12h47
  5. [ActiveX] Visibilité d'une propriété
    Par paradise dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2002, 19h33

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