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

Windows Forms Discussion :

[VB.NET] Recuperer un paramettre avec App.Config


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut [VB.NET] Recuperer un paramettre avec App.Config
    salut a tous
    voila j'ai crée un fichier app.config et voici ca structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <Document>
    <add key="Devis" value="Devis.doc"/>
    <add key="Facture" value="Facture.doc"/>
    <add key="Lettre" value="Lettre.doc"/>
    </Document>
    </configuration>
    j'ai une textbox et je voudrais recuperer la valeur correspondant a la key Facture

    voila ma syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.Text = System.Configuration.ConfigurationSettings.AppSettings("Facture")
    et rien ne se passe , j'ai bien donner a mon fichier .config le meme nom :

    Nom_Prog.exe.config et mon prog s'appelle Nom_Prog.exe donc je pense que cest bon

    Si vous pouver m'aider ou du moins m'aiguiller pour enfin bien comprendre les fichiers de configurations

    bye et merci d'avance

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Bon, ca a p-e rien à voir mais essaye en virant les balises

    <Document> et </Document>

    et remplace les par:

    <appSettings> et </appSettings>


    aussi, dans ton code, c'est pas plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TextBox1.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("Facture")
    Car c'est ce que j'au utilisé chez moi (en C#).....

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    salut
    alors j'ai remplacer les balise pour essayer et aussi essayer de mettre le Get mais cela ne change rien
    donc je pense qu'il me manque encore quelquechose

    autrement je me demandais si cetait possible de placer cest propre balise et d'en recuperer le resultat comme dans mon exemple <Document>

    car je trouve plus simple et plus clair

    merci d'avance

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Ton fichier config comment le crées tu ?
    A la main et tu le mets directement dans le repertoire bin\debug (ou release) ?
    ou bien tu le crées dans Visual studio ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    je l'ai créée dans visual studio en faisant ajouter un fichier de configuration App.config
    et je l'ai renomer en Mon_Prog.exe.Config

    Donc je trouve cela bizarre d'avoir rien qui s'affiche

    j'ai aussi essayer de le laisser avec le nom App.config et la il me fait une erreur qui me dit que mon fichier configuration n'est pas reconnue donc je pense que de le renomer est ce qu'il faut faire

    bye et merci

  6. #6
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Si tu l'as ajouter avec Visual studio c'est bizarre que tu aies eu la balise <document>
    Pour en ajouter un déjà tout fait, Menu projet -> Ajouter un nouvel élément -> choisir fichier de configuration de l'application.
    C'est bien ce que tu as fait ?

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Ton fichier doit se présenter comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    	<appSettings>		
    		<add key="Devis" value="Devis.doc"/> 
    		<add key="Facture" value="Facture.doc"/> 
    		<add key="Lettre" value="Lettre.doc"/>
    	</appSettings>
    </configuration>
    et pour récupérer l'info :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TextBox1.Text = System.Configuration.ConfigurationSettings.AppSettings["Facture"];
    Tu ne devrait pas avoir à renomer ton fichier, à la compil vs.net deplace et renome le fichier App.config dans le bin/debug ou bin/release tout seul en nomdetonappli.exe.config

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    en faite cest moi qui avait fait <document> car je voulais pouvoir classer mon parametrage par rubrique
    donc je vais reessayer ta syntaxe et refaire mon fichier et je vais voir ce que cela donne
    merci


    mais je me demandais si on peut faire des classsement pour pouvoir mieux se reperer quand on a pas mal de paramettre

    bye

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut
    Ce que tu peux faire c'est "classer" via key :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" ?> 
    <configuration> 
       <appSettings>       
          <add key="Document.Devis" value="Devis.doc"/> 
          <add key="Document.Facture" value="Facture.doc"/> 
          <add key="Document.Lettre" value="Lettre.doc"/> 
       </appSettings> 
    </configuration>
    Mais à priori on ne parle pas d'autre méthode Ici

  10. #10
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Oui on peux faire ses propres Sections

    Exple de fichiers
    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    	<configSections>
    	<!--Désactivation de appSetting defini dans le fichier de config machine 
    		et définition de notre propre section appSettings                     -->
    	<remove name="appSettings"/>
    	<section name ="appSettings" type="Ateo.Kernel.NameValueSectionHandler, ATKernel"/>
    	<section name ="solo" type="Ateo.Kernel.NameValueSectionHandler, ATKernel"/>
    	</configSections>
    	<appSettings>
    		<!--  User application and configured property settings go here  -->
    		<!--  Example: <add key="settingName" value="settingValue"/>  -->
    		<add key="Logpath" value="." />
    		<add key="AutoReloadSettings" value="true" />
    	</appSettings>
    	<solo>
    		<add key="zozo" value="test" />
    		<add key="din" value="abc" />
    	</solo>
    </configuration>
    Il faut faire une DLL (chez moi elle s'appelle ATKernel.dll) contenant ta classe pour la lecture de tes sections. Tu peux faire en sorte qu'elle ne te renvoie plus une collection en ReadOnly

    Bon c'est en C# hein
    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
     
    	/// <summary>
    	/// Handler de lecture de section de fichier de configuration.
    	/// Cette classe est automatiquement utiliseé par le framework lors de la lecture
    	/// d'un fichier de configration d'application. Elle ne peut être utilisée directement
    	/// dans votre code.
    	/// </summary>
    	public class NameValueSectionHandler : IConfigurationSectionHandler
    	{
    		/// <summary>
    		/// Constructeur
    		/// </summary>
    		public NameValueSectionHandler() {}
     
    		#region Membres de IConfigurationSectionHandler
     
    		/// <summary>
    		/// Implémentation de la méthode Create de IConfigurationSectionHandler
    		/// Cette fonction crée en renvoi une NameValueCollection.
    		/// </summary>
    		/// <remarks>Contrairement à la classe System.Configuration.NameValueSectionHandler, la collection
    		/// renvoyée est accessible en écriture.
    		/// </remarks>
    		/// <param name="parent">Voir MSDN</param>
    		/// <param name="configContext">Voir MSDN</param>
    		/// <param name="section">Voir MSDN</param>
    		/// <returns>Un objet NameValueCollection</returns>
    		public object Create(object parent, object configContext, XmlNode section)
    		{
    			// Création de la collection
                NameValueCollection collection = new NameValueCollection(new CaseInsensitiveHashCodeProvider(CultureInfo.InvariantCulture), new CaseInsensitiveComparer(CultureInfo.InvariantCulture));
    			// Parcours du XML de la section
    			foreach(XmlNode node in section.ChildNodes)
    			{
    				switch(node.Name)
    				{	
    					// On ajoute à la collection que les éléments add.
    					case "add":
    						collection.Add(node.Attributes["key"].Value, node.Attributes["value"].Value);
    						break;
    				}
    			}
    			return collection;
    		}
    Utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NameValueCollection sect = (NameValueCollection) ConfigurationSettings.GetConfig("nomdeSection");
    Tu n'as plus qu'à te faire une petite classe qui écrit dans le fichier XML lorsque tu modifie une entrée de la collection sect

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2003
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 126
    Par défaut

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    Merci a tous
    bon ba j'ai de quoi m'amuser pour jour ferier

    je vous remercie de vos exemple et de vos propositions

    bye

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    slt
    alors j'ai essayer la methode ou mon fichier app.config est comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" ?> 
    <configuration> 
       <appSettings>       
          <add key="Devis" value="Devis.doc"/> 
          <add key="Facture" value="Facture.doc"/> 
          <add key="Lettre" value="Lettre.doc"/> 
       </appSettings> 
    </configuration>
    et j'essaye de recuperer l'information de cette maniere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.Text = System.Configuration.ConfigurationSettings.AppSettings("Facture")
    j'ai remplacer les crochet par des parenthese autrement cela ne passe pas
    et lorsque que je lance le programme ma textbox est vide mais je n'ai aucune erreur
    voila si quelqu'un pige le probleme je suis preneur
    bye

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    bonsoir a tous
    alors j'ai trouver comment faire ne faite je devais avoir une erreur dans mon fichier config donc en VB.Net si quelqu'un est interraisser pour recuperer une clé cest :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox2.Text = System.Configuration.ConfigurationSettings.AppSettings.GetKey(0)
    0 est la valeur de ma clée ici j'en ait qu'une seul

    et voici comment recuper la valuer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox2.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("Devis")
    merci a tous

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    Par contre j'ai juste une question je pense que cest possible mais lorsque que je veux changer la valeur d'une de mes key il me dit que cest pas possible car le fichier est ne lecture seul

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim test as string
    test = "TEST"
    Configuration.ConfigurationSettings.AppSettings.Add("Dossier", TEST)

  16. #16
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Si je me souviens bien, dans sa version actuelle, le framework .NET n'autorise que la lecture des fichiers app.config.


    Mais comme c'est du XML, tu peux utiliser d'autre objets

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    a oki je comprends mieux
    bon je vais essayer avec des objet comme pour le XML mais je trouve cela vraiment nul de la part du framework d'avoir negliger cest option car pour un fichier config cest fondamental

    bye et merci encore

  18. #18
    Membre confirmé Avatar de Pasiphae
    Inscrit en
    Octobre 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 110
    Par défaut
    Salut !

    Si tu as besoin de modifier les clefs de config une seule fois (genre une clef differente par installation), tu peux faire une action personnalisée dans la procedure d installation qui modifie le paramètre de la clef.
    Pour ma part j utilise ce principe pour modifier le 'connection string' a ma base de données, vu que le nom du serveur change avec chaque installation. Si ça par hasard ça t interesse, fais le moi savoir.

    Bon courage pour la suite. :o

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Par défaut
    oui moi cest un peu le meme genre
    en faite je veux pouvoir stocker des nom de fichier dans mon application et qu'on peut modifier une fois le programme lancer

    exemple :

    j'ai un programme qui peut exporter des info sous word dans des fichier deja crée
    et bien je voudrais pouvoir stocker dans mon fichier le chemin de ce fichier et que l'utilisateur puisse change de fichier a tout moment

    mais ceci n'est qu'un exemple je voudrais vraiment m'en servir comme fichier qui contient les parametre d'un logiciels et surtout qu'elle soit changeable a tout moment dans le logiciels donc je pense que les fichier app.config sont la bonne solutions

    si tu a une autre idées je suis preneur autrement je suis interaisser pas ta methode qui a l'air d'etre une solution interraisante
    bye et merci

  20. #20
    Membre confirmé Avatar de Pasiphae
    Inscrit en
    Octobre 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 110
    Par défaut
    Citation Envoyé par Monster77
    mais ceci n'est qu'un exemple je voudrais vraiment m'en servir comme fichier qui contient les parametre d'un logiciels et surtout qu'elle soit changeable a tout moment dans le logiciels donc je pense que les fichier app.config sont la bonne solutions
    Dans l utilisation que j en fais, c'est modifié une seule fois lors de l'installation : http://msdn.microsoft.com/library/fr...stomAction.asp

    A part stocker dans un fichier xml ou dans le registre, je n ai pas d autres idées. J'ai testé le stockage des données dans un fichier xml, si tu utilises tes propres objets, ça peut devenir très pratique.

    Bon courage pour la suite. :o

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. problème avec app.config sous vs 2005
    Par eldrad95 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/10/2009, 12h09
  2. Probleme avec app.config
    Par Msysteme dans le forum Visual Studio
    Réponses: 8
    Dernier message: 27/01/2009, 11h00
  3. Problème avec App.config
    Par djorfe dans le forum Windows Communication Foundation
    Réponses: 3
    Dernier message: 13/10/2008, 09h15
  4. Liaison tardive avec app.config
    Par Promeneur dans le forum C#
    Réponses: 4
    Dernier message: 16/03/2007, 12h29
  5. [VB.NET] Recuperer Adresse IP et Config
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/03/2005, 09h44

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