GESTIONNAIRE DE FICHIERS INI

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 1 oct. 2004 à 22:49
Picsou00759 Messages postés 1 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 8 mars 2013 - 8 mars 2013 à 16:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26507-gestionnaire-de-fichiers-ini

Picsou00759 Messages postés 1 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 8 mars 2013
8 mars 2013 à 16:19
Code très utile, je m'en suis déjà servis plusieurs fois et je t'en remercie.
C'est vraiment pratique pour le stockage de masse surtout, car stocker plusieurs miliers de valeurs dans un pauvre xml... alors qu'ici dans un .ini on à l'avantage de la taille mais aussi de la rapidité de création (c'est déjà plus simple de faire un .ini que de respecter toute la structure hyper restrictive du XML).

10/10 :D
lokovbf Messages postés 11 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 1 avril 2011
30 sept. 2010 à 17:12
sympa et bien conçu. les fichiers ini ont un avantage, c'est de pouvoir les modifier/editer avec notepad tres simplement et facilement (rien de plus simple que de rajouter une clé dans un ini). ce qui est moins le cas avec des fichiers xml. malgré qu'on puisse faire autrement avec xml, je considère que ce code a toput de mem un interet, si on préfère pour X raisons perso les fichiers ini pour stocker ses paramètres. il y aussi des situations ou le fichier ini est incontournable: par ex avec des vieux (mais neanmoins encore existants) scripts .bat qui utilisent ces fichiers
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
13 janv. 2010 à 02:17
@GooseIsGod : Merci ! Merci ! MERCI !!! Enfin quelqu'un de censé !!! rhaaaa... j'vous jure, des morceaux de code issus d'une branlette cérébrale, j'en vois tous les jours dans mon taf, et j'en ai plus que marre ! Ne sacrifions pas les performances pour une meilleur lisibilité, mais l'inverse est tout aussi vrai :) je vous laisse méditer là-dessus ^^
GooseIsGod Messages postés 2 Date d'inscription jeudi 11 septembre 2003 Statut Membre Dernière intervention 16 avril 2008
30 déc. 2009 à 17:24
Un petit UP juste pour donner une note et dire que la structure XML c'est bien si l'on en a besoin ... après 26 ans de développement informatique, s'il y a bien une chose que j'ai retenu c'est que les fonctions le plus simples sont souvent les meilleurs.
peug Messages postés 232 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 5 octobre 2012
8 oct. 2009 à 17:10
Nickel, je cherchais à code cela pour lire une configuration d'un ini existant... !
baldemic Messages postés 3 Date d'inscription samedi 8 novembre 2008 Statut Membre Dernière intervention 16 décembre 2008
16 déc. 2008 à 16:04
Excelente source pour un débutant comme moi.
Note 10/10
Tout fonctionne nickel, mais je ne sais pas comment utiliser les fonctions "DeleteKey" et "SetKey".

J'ai envoyé un message privé, mais si quelqu'un connait...
Merci
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011
4 juin 2008 à 10:45
Bah le truc c'est que perso, j'ai tendance à coder comme un goret... J'ai découvert String.Empty il y a peu alors que ça fais plus d'un an que je code en asp.net :D

Dans un nouveau projet, je suis d'accord pour le Environment.NewLine (et même en règle générale d'ailleurs) et je pense souvent au cross platform (mon pc est sous windows, je travaille au taff sous windows, et les 2 seules choses qui me forcent à rester sous windows @home c'est le fait que ma carte télé fonctionne mal (hybride, c'est un peu la merde à faire fonctionner, bien que j'ai fais un tuto pour ca sous ubuntu) et le fait que mon ordinateur démarre 2 ou 3 fois nickel sous linux, et la quatrième, j'ai un bel écran noir, alors que je n'ai touché à aucune config... même en mode console), ainsi qu'à l'accessibilité des sites web et la compatibilité cross-browser (généralement je teste IE7 (parce que flême d'installer MultipleIE)/Firefox 2/Opera 9/Lynx et dès fois même konqueror et Evince sur une machine virtuelle. Enfin ça c'est coté perso, parce qu'au taff c'est "IE6 et compatiblité fonctionnelle avec Firefox" et vu les délais, vaut mieux pas trop que je joue la compatiblité à 100% :D

Tout ça pour dire : Environment.NewLine dès qu'aucune contrainte n'est posée :D
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
4 juin 2008 à 10:33
C'est vrai globalement tu as raison, mais dans ce contexte , fichier init, soit ont prends un fichier existant, donc cr?e sur l'OS, soit on le cr?e au premier lancement du soft, donc toujours sur l'OS existant.
Donc pour ?tre coh?rent dans tout les cas de figure il faut absolument utiliser environment.newline, car sinon tu sera en d?saccord avec l'OS sur lequel tourne le logiciel qui utilise cette classe.
Je suis plus linux + Mono et donc je pensse r?gulierement crossplatform lol :D :
http://sourceforge.net/projects/cs-obexftp/
http://sourceforge.net/projects/rpmspecmanager/
et je suis aussi la : http://mono-project.com/OpenSUSE_Build_Service
lol :D
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011
3 juin 2008 à 18:04
Sauf que ce n'est pas forcément vrai...

Prenons windows pour exemple : suivant le fichier que tu ouvre, le NewLine c'est \r\n ou \n (sois dit en passant, il est normalement plus logique d'utiliser \r\n pour un retour à la ligne qu'un \n, car sinon, une imprimante pourrait ne pas faire de retour chariot et imprimer sa ligne suivante sous l'autre, mais en restant au même niveau sur la ligne)

Enfin bref, Environment.NewLine dépends de l'OS, mais un même fichier peut être utilisé sous 2 OS différents (exemple d'au dessus, Neverwinter Nights qui a un client Windows et une client Linux) et tu pourrait utiliser \n sur ton fichier sous Linux (car Environment.NewLine sous Linux doit renvoyer \n non ? je sais pas j'ai jamais testé :P) et pourtant, ton fichier .ini attends un \r\n

A mon avis, cette ligne est à adapter en fonction de l'utilisation du programme. Windows ? Linux ? Interportable ? Bridé à une machine ? Et sur mac ? (il n'y a que le \r :P)
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
3 juin 2008 à 17:12
private const string newline = "\r\n";
C'est mieux pour les autres OS :
private const string newline = Environment.NewLine;
:D
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
3 juin 2008 à 17:06
C'est exacte , j' ecrit ClamWinRT (sf.net) et je chercher justement cette classe puisque le logiciel ClamWin ne semble pas ecrit en .NET et utilise ce bon vieu fichier INIT, un peut comme sous unix/linux d'ailleurs lol :D rien que pour ?a 9/10, severe punition lol
themioux Messages postés 45 Date d'inscription dimanche 29 mai 2005 Statut Membre Dernière intervention 14 avril 2011
26 juil. 2007 à 11:27
Je remonte ce sujet pour dire que cette classe peut être trèèèès utilse...

Imaginons un instant que vous faites un programme qui utilise uniquement des fichiers ini... (et il y en a encore beaucoup... pour des raison de taille de transfert... un ini est beaucoup plus petit qu'un xml qui fais la même chose (vous voulez des exemples ? Folding@Home enregistre ses paramètres dans un fichier ini (déguisé en .cfg ^^), Neverwinter Nights (1) enregistre aussi ses paramètres dans des fichiers ini... et si je vous parles de ces 2 programmes, c'est que j'ai développé un configureur pour NWN en VB.Net (accès à certaines options invisibles dans l'interface de NWN), et un petit plugin pour LCDStudio qui permet de lire les infos de F@H)

Il y a aussi mame qui utilise du ini (et depuis plus récemment aussi du XML)... bref, le ini n'est pas mort
sharperton Messages postés 1 Date d'inscription dimanche 1 janvier 2006 Statut Membre Dernière intervention 2 janvier 2006
2 janv. 2006 à 08:33
Bel exemple de la programmation. Les fichiers ".ini" c'est la réalité des environnements d'aujourd'hui (et encore pour certain temps), il est inutile de discuter. Le programme n'utilise pas les fonctions win32 (comme http://www.codeproject.com/csharp/ReadWriteXmlIni.asp) et c'est un plus.
On pourrait y ajouter les méthodes
public string[] GetSections()
public string[] GetSection(string section)
...et ça serait parfait ;-)
cs_thebigboss Messages postés 216 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 avril 2017 2
10 déc. 2005 à 17:24
Moi je vais commencer par regarder ton fichier car les .ini ca semble accessible à tout le monde. Je passerai peut-être ensuite au xml (que je ne connais pas du tout).

Merci en tous cas pour ton fichier
cs_pietou Messages postés 16 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 6 mai 2008
12 août 2005 à 15:42
C'est vrai que c'est une classe sympa, mais dans le genre, je préfère http://www.codeproject.com/csharp/ReadWriteXmlIni.asp

Là, ça fait tout! XML, ini, config, et registry
Une classe par type et une démo bien faite.

Donc, un 7/10.
cs_Light Angel Messages postés 48 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 1 janvier 2005
2 janv. 2005 à 18:25
Franchement, je trouve que ce code était celui qu'il manquait pour ceux qui sont comme moi allergique a l'XML (déja, quand on l'a apprit qu'il fallait commenter les codes C# avec du Xml ...) Bref, pour faire court : 10/10
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
9 déc. 2004 à 16:17
certes...

:o))
cs_yoannd Messages postés 305 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 août 2011 7
9 déc. 2004 à 15:10
Moi je trouve que ce code est bien. D'accord, l'utilisation de classe sérialisées est très pratique et très interessant, mais il arrive parfois que l'on veuille récupérer les paramêtres d'une autre application, plus ancienne, et que celle-ci utilise des fichiers ini... ce code n'est donc pas forcément inutile comme le laissait entendre gg00xiv.
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
5 oct. 2004 à 11:07
cela dis...

l'idée est bonne...

pour les grands mere ;o))))

je plaisante.... :o))))
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
5 oct. 2004 à 11:07
J'ai déjà vu ta source, et si jamais pour t'en convaincre tu peux lire les autres commentaires ;-)
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
5 oct. 2004 à 11:04
j'avais poster un code qui permet (entre autre) de genere un xml qui peut servir de fichier ini....

avec un objet serializable....

c bien pratique....et très simple d'utilisation...
tu creer un objet...une structure par exemple...
tu la rempli de données...
tu genere le fichier xml....
et voilou....


voir le code sur le bouton OK(pour l'ecriture du fichier) et sur le form load (pour la lecture...)

le tout ce trouve la :

http://www.csharpfr.com/code.aspx?id=23015
gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
4 oct. 2004 à 11:32
lol, j'adore !!!
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
4 oct. 2004 à 09:02
Pour la petite histoire, je me suis pas pris la tête, et puis si qqun préfère utiliser les fichiers ini que le XML, comme ça il peut ;-)

Ma grand mère par exemple, je pense pas qu'elle sache utiliser le XML mdr, alors qu'un fichier INI c'est tellement simple.
gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
3 oct. 2004 à 13:54
Sincérement, non.
La tu t'es pris la tête à coder un gestionnaire de fichiers ini, alors que ceux existant pour XML sont bien plus élaborer et déjà intégrés au Framework.NET.
bucherb Messages postés 412 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 août 2007
3 oct. 2004 à 07:31
On est tout a fait d'accord sur ce point, mais pas tout le monde maitrise encore cette technologie, alors le fichier ini pour faire de petites variables modifiables très facilement reste encore le plus facile a utiliser.
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 oct. 2004 à 22:49
J'ai pas testé ton code, mais disons que le temps n'est plus tellement au fichier .ini mais plutôt à l'xml, non?

Enfin, c'est ce que je peux te conseiller!
Rejoignez-nous