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

C# Discussion :

Ecriture dans un fichier de configuration .config


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 22
    Points : 7
    Points
    7
    Par défaut Ecriture dans un fichier de configuration .config
    Bonjour!

    Voila, j'avance dans mon apprentissage, aujourd'hui j'ai décidé d'apprendre a sauvegarder des données dans un fichier de configuration!

    Voici ou j'en suis :
    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
     
            private void readfile_b1_Click(object sender, EventArgs e)
            {
     
                string directory = ConfigurationManager.AppSettings["directory"];
                MessageBox.Show(directory);
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                config.AppSettings.Settings.Remove("directory"); // Supprime ce qui est contenu dans directory
                config.AppSettings.Settings.Add("directory", "test");
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
                directory = ConfigurationManager.AppSettings["diretory"];
                MessageBox.Show(directory);
     
     
            }
    et le fichier
    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="directory" value="essai"/>
     
      </appSettings>
    </configuration>
    Il s'agit d'un exemple trouvé sur le net, ce que je ne comprend déjà pas, c'est qu'il déclare 2 fois la même variable "directory" or c'est fait au début!

    A la première boite de dialogue, j'ai bien essai qui s'affiche, a la deuxième, elle est tout simplement vide! Je dois cliquer 2 fois sur le bouton pour voir "test" s'afficher, ça me dépasse... Comment feriez vous pour enregistrer un fichier de configuration facilement?

    Apparement il va dans certain cas enregistrer les données de configuration dans un fichier vhost, a quoi correspond t il svp?

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    c'est qu'il déclare 2 fois la même variable "directory" or c'est fait au début!
    Il ne la déclare qu'une fois
    Ou pense tu qu'il l'a déclare 2x?
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 22
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Il ne la déclare qu'une fois
    Ou pense tu qu'il l'a déclare 2x?
    La ligne avant le second "MessageBox" non?

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Euh non pour qu'il y a aie déclaration d'une variable il faut
    sontype sonnom

    ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    directory = ConfigurationManager.AppSettings["diretory"];
    il ne fait qu'utiliser la variable

    vshost c'est en fait le programme lancer via le debugger

    Essaye de lancer l'exe ca devrait résoudre le problèmme
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 22
    Points : 7
    Points
    7
    Par défaut
    Apparemment, si je fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string lien = @"c:\\test2";
    openFileDialog1.InitialDirectory = lien;
    ca ne fonctionne pas en voulant utiliser une string pour le chemin par défaut ou alors il faut utiliser une syntaxe différente? Mon idée était de récupéré le chemin
    en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lien = openFileDialog1.FileName;
    et en le sauvegardant dans un fichier .config(ca fonctionne) mais lorsque je veux récupéré cette valeur, openFileDialog1.InitialDirectory n'en tient pas compte...

    D'ailleur, openFileDialog1.FileName récupere le chemin avec le nom de fichier, y a t il moyen d'avoir que le chemin?

    Merci!

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    c:\test2 est bien un répertoire qui existe?

    Il faut utiliser FileInfo
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 22
    Points : 7
    Points
    7
    Par défaut
    Oui.

    J'ai réécris différemment pour que ca soit + clair : ( C'est a partir d'un tuto de ce site!)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                string nom = ConfigurationManager.AppSettings["nom"];
                string prenom = ConfigurationManager.AppSettings["prenom"];
                MessageBox.Show(prenom);
     
     
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                config.AppSettings.Settings.Remove("prenom");
                config.AppSettings.Settings.Add("prenom", "Nouveau prenom");
                config.Save(ConfigurationSaveMode.Modified);
                ConfigurationManager.RefreshSection("appSettings");
                MessageBox.Show(prenom);
     
                prenom = ConfigurationManager.AppSettings["prenom"];
    Avec dans le config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <configuration>
      <appSettings>
        <add key="nom" value="pyright"/>
        <add key="prenom" value="nico"/>
      </appSettings>
    </configuration>
    Lors de la première exécution, quand je veux afficher le contenu du fichier, j'ai toujours l'ancienne valeur alors que le fichier a bien été modifié! Il faut que je ferme l'application et que je la réouvre pour qu'il charge les bonnes données alors que je fais un refresh. Est ce normal??

Discussions similaires

  1. probleme d'ecriture dans un fichier texte
    Par azrael88370 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/01/2005, 17h33
  2. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  3. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  4. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  5. Réponses: 2
    Dernier message: 26/09/2003, 14h51

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