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 :

Modification fichier *.config C#


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Modification fichier *.config C#
    Bonjour,

    SVP pouvez-vous m'expliquer comment modifier (par Code) des données qui sont déjà stockées dans un fichier *.config ??!!!

    merci d'avance.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux utiliser le bout de code suivant :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var appConfigFile = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
    appConfigFile.AppSettings.Settings["TonString"].Value = "La valeur que tu veux enregistrer";
    appConfigFile.Save();
    Cependant le fichier de configuration n'est à mon avis pas le meilleur outil pour avoir des paramètres dynamiques...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    C'est pas fait pour ça, normalement un fichier .config n'est pas supposé être modifié par le programme qui l'utilise (sauf le user.config qui contient les paramètres utilisateurs, mais pour ça on utilise habituellement la classe de Settings générée par Visual Studio)

    De toutes façons le fichier de config du programme est dans le répertoire du programme, donc souvent dans Program Files, et à moins d'être administrateur on ne peut pas écrire dans ce répertoire (du moins sous Windows Vista/7/8)

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    merci pour les réponses

    Citation Envoyé par DotNetMatt Voir le message
    Tu peux utiliser le bout de code suivant :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var appConfigFile = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
    appConfigFile.AppSettings.Settings["TonString"].Value = "La valeur que tu veux enregistrer";
    appConfigFile.Save();
    je viens d'essayer ce code mais il marche pas, ma variable contient toujours sa ancienne valeur !!
    Citation Envoyé par DotNetMatt Voir le message
    Cependant le fichier de configuration n'est à mon avis pas le meilleur outil pour avoir des paramètres dynamiques...
    de quel outil pouvez-vous me conseiller ???

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Les outils dont je parle, tomlev en a évoqué un : les Settings. Tu peux y accéder dans les Propriétés de ton projet. Il y a un onglet "Paramètres".

    Tu peux choisir la portée (scope) de chaque paramètre : utilisateur ou application.

    Une autre solution est de manipuler dans ton code un singleton afin de gérer les paramètres de l'application, et une classe qui permettra de gérer les paramètres utilisateurs.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    j'ai travaillé avec un fichier Settings, il marche bien jusqu’à moment, mais je vois pas comment l'utiliser pour y stocker des tableaux ?!!!!! (je crois que c pas possible)

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par omarensem Voir le message
    j'ai travaillé avec un fichier Settings, il marche bien jusqu’à moment, mais je vois pas comment l'utiliser pour y stocker des tableaux ?!!!!! (je crois que c pas possible)
    Tu peux y mettre n'importe quel type qui est sérialisable en XML a priori. Par exemple si tu veux mettre un tableau d'entiers, dans le designer de settings tu choisis "Browse..." dans liste déroulante du type, et tu tapes "System.Int32[]". Ensuite tu peux éditer le contenu comme pour n'importe quelle collection

  8. #8
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Dommage, je trouve pas ce "System.Int32"
    est ce qu'il me faut ajouter une référence ?
    merci d'avance.

  9. #9
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Regarde ce lien : http://www.codeproject.com/Articles/...ngs-Class-in-C

    [EDIT] : c'est dans la colonne "Type" qu'il faut choisir le type voulu, Int32[] par exemple.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par omarensem Voir le message
    Dommage, je trouve pas ce "System.Int32"
    est ce qu'il me faut ajouter une référence ?
    merci d'avance.
    Mais non, je t'ai dit qu'il fallait le taper. Peut importe qu'il apparaisse ou pas.

  11. #11
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    je l'ai déjà fait, il me répond toujours par "Ce type n'est pas défini" !!!

    j'ai cherché dans toutes les biblio de "Parcourir", il n'est existe pas un "Systeme.int" :o

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bizarre, à un moment j'avais réussi à le faire, mais là ça fonctionne plus

    Bon, voilà une solution qui marche, même si c'est pas très pratique :

    - crée un setting de type int (accessible directement dans la liste déroulante)
    - ferme les settings
    - ouvre le fichier Settings.settings avec un éditeur XML, et remplace "System.Int32" par "System.Int32[]"
    - referme le fichier, et rouvre les settings normalement

    Tu peux maintenant ajouter des éléments au tableau via le designer de settings...

  13. #13
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Voilà, j'ai créé une variable (via le setting desiner) nomée "table" de type int, quand j'ai ouvert le fichier XML c'est ce que j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <setting name="table" serializeAs="String">
            <value>1</value>
          </setting>
    aucun "system.int" !!!
    NB: mon fichier Settings est inclue dans le dossier Properties !

    Bonne fin de journée.

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ce que tu montres ça ressemble plutôt au fichier app.config... Le fichier qu'il faut modifier s'appelle Settings.settings, et il contient quelque chose comme ça :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <Setting Name="table" Type="System.Int32" Scope="User">
          <Value Profile="(Default)">0</Value>
        </Setting>

  15. #15
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bizarre il me donne pas ça !!
    je viens de recréer un autre fichier .Settings mais aucune différence !!
    Bon, mon but est de sauvegarder les dernière modifications effectuées à travers une fenêtre C#(Texbox) afin de les récupérer pendant le lancement suivant de l'application.
    y a t-il une autre solution ?!

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par omarensem Voir le message
    Bizarre il me donne pas ça !!
    je viens de recréer un autre fichier .Settings mais aucune différence !!
    Bizarre ton histoire... tu utilises quelle version de Visual Studio ?

    Mais je pense que tu n'ouvres pas le bon fichier, parce que dans ce que tu montres il n'y a aucune indication sur le type du setting... or il a besoin de cette info pour générer le fichier C# associé.

    Citation Envoyé par omarensem Voir le message
    Bon, mon but est de sauvegarder les dernière modifications effectuées à travers une fenêtre C#(Texbox) afin de les récupérer pendant le lancement suivant de l'application.
    y a t-il une autre solution ?!
    Bah tu peux enregistrer un fichier texte, ou XML, ou n'importe quoi, dans le répertoire de données de l'application (AppData), et le recharger au lancement suivant...

Discussions similaires

  1. Modification du fichier config.machine
    Par Mirmillon dans le forum Visual Studio
    Réponses: 0
    Dernier message: 28/12/2010, 19h23
  2. A propos de fichier « config.sys »
    Par Furius dans le forum Windows
    Réponses: 9
    Dernier message: 21/09/2005, 10h03
  3. [FLASH MX] Modification fichier SWF
    Par tom06440 dans le forum Flash
    Réponses: 8
    Dernier message: 19/04/2005, 20h23
  4. [MFC] recupération date modif fichier
    Par Gothico dans le forum MFC
    Réponses: 7
    Dernier message: 21/01/2005, 18h47
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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