Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE D'ECRITURE/LECTURE DE FICHIER CONFIG


Information sur la source

Catégorie :Fichiers / Disque Source .NET ( DotNet ) Classé sous : config, appsettings, xml Niveau : Débutant Date de création : 20/10/2005 Date de mise à jour : 26/04/2007 16:12:50 Vu / téléchargé: 13 614 / 955

Note :
6,33 / 10 - par 3 personnes
6,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

C'est une petite classe sans prétention qui permet d'ecrire et lire un fichier de config Xml dans le genre de app.config.
On peut donc l'utiliser sur un fichier app.config classque mais aussi utiliser d'autres valeurs pour le parametre 'Rubrique' que celle par defaut (appSettings).
Par contre pour utiliser des 'Rubriques' il faut au préalable les créer dans le fichier xml en mettant les balises. J'essayerais d'automatiser ca dans une MaJ.
Exemple de Fichier config (pour exemple)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
</appSettings>
<PrivateSettings>
</PrivateSettings>
</configuration>

 

Source

  • using Utilitaires;
  • private Utilitaires.ConfigFile CF = new Utilitaires.ConfigFile("c:\\essai.config");
  • CF.SaveParam("HAHA", "1");
  • CF.SaveParam("HEHE", "10", "TEST");
  • CF.SaveParam("HIHI", "11", "TEST");
  • MessageBox.Show(CF.ReadParam("1"));
  • MessageBox.Show(CF.ReadParam("10","TEST"));
  • foreach (ConfigFile.Parametre param in CF.Parametres("TEST")) {
  • MessageBox.Show(param.Key + " **** " + param.Value);
  • }
  • foreach(string s in CF.Rubriques()) {
  • MessageBox.Show(s);
  • }
  • CF.Close();
using Utilitaires;
private Utilitaires.ConfigFile CF = new Utilitaires.ConfigFile("c:\\essai.config");

CF.SaveParam("HAHA", "1");
CF.SaveParam("HEHE", "10", "TEST");
CF.SaveParam("HIHI", "11", "TEST");

MessageBox.Show(CF.ReadParam("1"));
MessageBox.Show(CF.ReadParam("10","TEST"));

foreach (ConfigFile.Parametre param in CF.Parametres("TEST")) {
	MessageBox.Show(param.Key + "  ****  " + param.Value);
}

foreach(string s in CF.Rubriques()) {
	MessageBox.Show(s);
}
CF.Close();

Conclusion

Pour info c'est une classe que j'avais faite pour VB.NET et que j'ai passé en C#.
Voici le lien de la source VB si ca interresse quelqu'un ici ^^ : http://www.vbfrance.com/code.aspx?ID=33033
Par contre vu que je viens à peine de me lancer dans le C#, je n'ai peut etre pas des methodes de codage "propres", n'hésitez pas a faire des remarques qui permetraient d'ameliorer la qualité du code (et du codeur :p).
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

29 septembre 2006 11:15:08 :
J'ai ajouté un constructeur qui vous permet de spécifier l'encoding dans le fichier pour la création (si il y a besoin de créer le fichier) et également la possibilité de lister les rubrisues du fichier de config. L'encoding par défaut lors de la création du fichier a été changé égalmement et devient iso-8859-15. Dans une prochaine version je m'attaquerai plus au code lui même pour l'améliorer un peu.
26 avril 2007 16:12:50 :
Ajout de la classe ConfigFileException qui manquait.

Commentaires et avis

signaler à un administrateur
Commentaire de MorpionMx le 20/10/2005 16:55:34 administrateur CS

Je comprends pas trop pourquoi tu fais le meme test (File.Exists) dans Open et dans le constructeur.
Enleve celui du constructeur, laisse juste celui d'Open. Ainsi si le fichier n'existe pas, il sera créé.

signaler à un administrateur
Commentaire de MorpionMx le 20/10/2005 17:13:15 administrateur CS

Sinon, une petite idée, tu devrais creer un constructeur qui ne prenne pas de paramètre, et qui ouvre (ou crée) automatiquement un fichier tonappli.exe.config.
Et si cela pouvait gérer + de sous-niveaux ce serait bien (par exemple, pour activer / desactiver des <switches> de Trace dans <system.diagnostics>)

signaler à un administrateur
Commentaire de mastercatz le 20/10/2005 17:40:15

c'est vrai je ne m'en était pas apercu.
Par contre je vois pas ou tu veux en venir avec les Trace .....
tu pourais developper ton idée stp ?

signaler à un administrateur
Commentaire de MorpionMx le 20/10/2005 17:47:51 administrateur CS

Ce que je voulais dire, c'est que dans un fichier .config, tu peux avoir
<system.diagnostics>
<switches>
<add name="" value=""/>
<switches />
<system.diagnostics />

Donc des sous-niveaux dans l'arborescence.

Pour une prochaine version, tu pourrais gerer ces sous-niveaux. (Ce serait pratique, et c'etait la l'interet de l'exemple, pour gerer ces dits switches qui permettent d'activer / desactiver l'ecriture d'elements de debuggage par exemple)

Ah oui, sinon, n'oublies pas de desactiver une lecture seule eventuelle du fichier config ;)

signaler à un administrateur
Commentaire de mastercatz le 20/10/2005 17:51:34

Ok je comprends. Je vais bosser la dessus et desactiver cette lecture seule ^^
Merci.

signaler à un administrateur
Commentaire de kbumbazz le 21/10/2005 10:13:09

Salut : MASTERCATZ

Si tu regardes les API du framework, le fichier app.config n’est accessible au travers des ConfigurationSettings.AppSettings qu’en lecture seule et la raison est simple :
La définition de cette fonctionnalité est l’idée de fournir a un logiciels des Paramètres de Configuration et non des paramètres d’Options (donc modifiables.)

Je t’invite à voir cette source pour plus d’info. http://www.csharpfr.com/code.aspx?ID=30157

Ce que tu fais fonctionne bien  mais n’est pas « conceptuellement » correct.

Si tu veux plus d’info n’hésite pas.

Au plaisir.

signaler à un administrateur
Commentaire de mastercatz le 21/10/2005 10:25:37

Oui je comprends bien ce que tu veux dire.
Mais le but de cette classe est bien de servir à enregistrer des options dans un fichier tout en restant lisible par n'importe quel editeur de texte et ce bien que le fichier est du meme genre que app.config. Ce qui a mon avis peut etre un avantage. Par exemple un administrateur pourait modifier a volonté les parametres de configuration et les utilisateurs se serviraient du fichier comme un app.config classique.
Apres pour ce qui est de ta source je ne sais pas trop quoi dire, je ne connais pas du tout la Serialization et les Storage mais des que j'ai un moment j'essayerais d'implémenter ta classe et voir comme elle fonctionne.

signaler à un administrateur
Commentaire de kbumbazz le 21/10/2005 10:30:59

Si tu utilises un Serialiser XML c'est tout aussi lisible.

Bonne journée.

signaler à un administrateur
Commentaire de mastercatz le 24/10/2005 11:45:17

J'aurais voulu avoir un avis sur une chose, je vais essayer d'implementer plusieurs sous-niveaux mais je m'interroge encore sur la facon de proceder. Serait-ce plus pratique pour un programmeur d'utiliser par exemplele SaveParam avec un chemin genre :
CF.SaveParam("HEHE", "10", "TEST/Sub1/Sub2/");
ou alors plus un fonctionnement sous forme de collection genre :
CF.SubRubrique(1).SubRubrique("Sub1").Parametres("Option1").Value
La 2nde m'aparait plus compliquée à coder et je ne sais pas si ca sera vraiment plus utile. Quel est votre avis ?

signaler à un administrateur
Commentaire de bucherb le 09/11/2005 10:24:00

A mon avi tu rempli un DataSet avec tes données de config, et ensuite tu fais un WriteXML et c'est nickel lol

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

[appli].config / ConfigurationSettings.AppSettings [ par Diamondduff ] Bonjour,J'ai 3 applis (exe) dans un m&#234;me r&#233;pertoire... comme je ne suis pas un goret, j'ai externaliser des constantes dans un fichier XML a [Débutant][Web.config] pb de appSettings [ par kinderman81 ] Salut,Je souhaite mettre ma chaine de connexion à ma BdD dans le fichier web.config.A l'exécution, j'ai l'erreur suivante :Section de configuration 'a Trouve pas la classe ni la methode !!! [ par jimmy69 ] Bonjour,Je bosse normalement sous net 1.1  !j'ai installe sur ma machine visual studio 2005 pro et comme j'ai decouvert que dot net 2.0 permettait d'e Insertion d'un noeud dans un fichier XML [ par lePouns ] Bonjour &#224; tous,Voici mon probl&#232;me. J'ai un fichier xml comme ceci :&lt;config&gt;&nbsp;&nbsp; &lt;setting back="1" future="2" /&gt;&nbsp;&nb Comment Changer la chaine de connexion dans le app.config depuis le setter de config.cs? [ par trioy ] Hello tout le monde,j'ai un fichier app.config avec &#231;a : &lt;configuration&gt;&lt;appSettings</F config xml, best practice [ par GillouXman ] Salut tout le monde, voici la situation, j'ai une appli winform qui se repose sur un fichier de config séparé. L'interface se load dynamiquement par Problème de configuration [ par soude ] Salut à tousJe suis en train de développer une application Web sous C# et ASP.NET 2.0. J'ai eu le message que suit lors du chargement de l'une de mes lire un fichier Xml invalide!!! [ par cocochanele ] Bonjour,j'aimerais lire un fichier invalide XML avec le language C#je recontre deucx problemes 1. le Doctype est: &lt;!DOCTYPE cteobject SYSTEM "ctexl Comment écrire les colonnes vide dans un fichier XML ? [ par vinzemuls ] Bonjour,voilà je fais un export de données dans un fichier XML pour qu'il soit ouvert par la suite dans EXCEL.le problème est que si une de mes colonn Fichier Xml [ par odeog ] Bonjour J' aurais aimé savoir comment faire pour lire un fichier xml non pas avec du word ou autre mais simplement l' éditer pour y voir le resultat


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.