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

Collection et Stream Java Discussion :

Properties : comment spécifier les paramètres d'une property ?


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Properties : comment spécifier les paramètres d'une property ?
    Bonjour,

    Je récupère des propriétés à partir d'un fichier .properties en utilisant la méthode getProperty de l'API java.util.Properties :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monFichierProperties.getProperty("maProperty1")
    Fichier properties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maProperty1=Vous avez choisi l'élément {0}
    Je voudrai savoir comment spécifier dans mon code java les propriétés {0}, {1}, etc... ?

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Je ne suis pas sûr d'avoir compris ce que tu voulais, mais pour affecter une valeur à une propriété il faut utiliser la méthode setProperty(String key, String value) de la classe Properties.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monFichierProperties.setProperty("maProperty1", "Vous avez choisi l'élément {0}");
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    En plus, pour que les changements soit pris en compte, il ne faut pas oublier d'utiliser la méthode store

  4. #4
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    j'ai peutetre pas bien compri.
    que ce que j'ai compri c'est tu a dans un fichier properties une string comme ca:

    >maProperty1=Vous avez choisi l'élément {0}

    tu lis comme ca:

    > String s = monFichierProperties.getProperty("maProperty1")

    et tu veut renplir le parametre {0} ?

    c'est simple il faut utiliser MessageFormat :-)

    Object[] o = new Object[]{"numero 1"};
    System.out.println("MessageFormat.format("Vous avez choisi l'élément {0}", o);

    va afficher
    Vous avez choisi l'élément numero 1

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Désolé si j'ai mal formulé ma question Je voulai dire "Je voudrai savoir comment spécifier dans mon code java les paramètres {0}, {1}, etc... de mes propriétés?"

    Du coup c'est bbclone qui a compris ma question félicitations Je vais tester les MessageFormat ca semble être ca.

    Merci à tous pour vos réponses.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Maintenant que j'arrive à paramétrer mes properties je tombe sur un nouveau problème... Quand j'utilise des String comme paramètre ca ne fonctionne visiblement pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Object[] tabParam = new Object[]
    {
         _objet1.getMin(),
         _objet2.getLibelle()	
    };
    this.msgErreur.append(MessageFormat.format(this.propertiesFileObject.getProperty("maProperty"), tabParam));
    _objet1.getMin() : retourne un Integer
    _objet2.getLibelle() : retourne une String

    this.msgErreur est un StringBuffer;

    maProperty=Vous devez choisir au minimum {0} cr\u00E9dit(s) sous l'enseignement {1}

    Malheureusement j'ai le résultat suivant :
    Vous devez choisir au minimum 2 élément(s) sous lenseignement {1}

    Pourtant en mode debug je peux voir que les 2 objets de mon tableau de paramètres sont correctements remplis

    (au passage, l'apostophe de "l'enseignement" a été squizzée !)

  7. #7
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    http://java.sun.com/j2se/1.4.2/docs/....html#patterns
    Within a String, "''" represents a single quote. A QuotedString can contain arbitrary characters except single quotes; the surrounding single quotes are removed. An UnquotedString can contain arbitrary characters except single quotes and left curly brackets. Thus, a string that should result in the formatted message "'{0}'" can be written as "'''{'0}''" or "'''{0}'''".

    Warning:
    The rules for using quotes within message format patterns unfortunately have shown to be somewhat confusing. In particular, it isn't always obvious to localizers whether single quotes need to be doubled or not. Make sure to inform localizers about the rules, and tell them (for example, by using comments in resource bundle source files) which strings will be processed by MessageFormat. Note that localizers may need to use single quotes in translated strings where the original version doesn't have them.
    Il faut doubler les "simple quote" pour que MessageFormat fonctionne (car ton texte est en fait un Pattern avec des contraintes en Java).
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Ca m'apprendra à pas lire la javaDoc en entier

    Merci g_rare !

  9. #9
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut Comment utiliser le store de la classe properties ???
    Je sais que le sujet date de bcp de temps déjà mais il m'interesse car je rencontre en ce moment un pb presque identique, en fait je récupère une valeur propriété, je la modifie dans mon programme Java et à la fin je veux que cette valeur soit prise en compte lors d'un set.
    Voila un exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    fichProprietes.setProperty("idBroadcastMax", Integer.toString(idBroadcastMax));
    fichProprietes.store(?,?);
    La mathode set de la classe prend 2 paramètres: un OutPutStream et un String, je sais pas où je dois aller chercher ces 2 params.
    Merci de m'aider.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  10. #10
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Ok c bon je retire ma question, voila simplement le code qu'il fallait rajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FileOutputStream out = new FileOutputStream("conf.properties");
    fichProprietes.store(out, "test");
    ça peut toujours aider quelqu'un
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

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

Discussions similaires

  1. Comment transmettre les paramètres d'une requête ?
    Par verbose dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 12/05/2011, 22h10
  2. [WD10] Comment imprimer les paramêtres d'une requête dans un Etat?
    Par amilas dans le forum WinDev
    Réponses: 2
    Dernier message: 25/08/2009, 00h22
  3. comment récupérer les données d'une paramètre avec cplex
    Par debalgo dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 18/06/2008, 12h32
  4. Comment configurer les paramètres d'une S-function
    Par karamellati dans le forum Simulink
    Réponses: 3
    Dernier message: 29/08/2007, 12h00
  5. Réponses: 11
    Dernier message: 06/09/2006, 12h48

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