Class confini pour gerer les fichiers .ini

Soyez le premier à donner votre avis sur cette source.

Vue 9 448 fois - Téléchargée 494 fois

Description

Encore un boulet qui fait dans le .ini à l'heure du xml...
Ben vi :)
Bon, désolé, c'est mon premier envoi de script en C#, et c'est una partie de ma première appli... indulgence bienvenue et conseils souhaités ;)
.ini, car déjà, se manger le passage au C# quand on vient du PHP/MySQL, ça donne, mais si faut absolument se taper toute les nouveautés genre xml & co... ouille, jamais on ne développe, toujours on apprends...
Pis bon, Microsoft himself est le premier à se servir des .ini, donc... camembert! :)

A part ça, je debute en C#, je m'arrache bien les cheveux :)
Pour les type Array du script âr exemple, je suis bien sur d'être passé à coté du truc... conseils très très bienvenus.

Source / Exemple :


J'ai tenté de mettre la source direct, mais les soucis de tabulations me font déprimer, je la mets donc en zip et ne laisse ici que le commentaire de la classe (la source est documenté sur chaque method)
  /// <summary>
  /// Ben oui, explications en "fromages qui puent" :)
  /// Cette class permet la gestion des fichier de config de type .ini
  /// oui, j'ai fait exprès pour le nom, c'était trop tentant :)
  /// 
  /// Par défaut, le fichier géré est "conf.ini".
  /// La method SetFileName(string) permet d'attribuer un autre nom de fichier,
  /// et donc, de gérer plusieurs fichiers.
  /// Si inexistant, le fichier est automatiquement créé dès que besoin.
  /// 
  /// Cette class gère 2 formes de fichiers de config:
  /// 
  /// 1) Sans le paramètre key:
  /// [categorie A]
  /// valeur
  /// [categorie B]
  /// valeur
  /// ...
  /// 
  /// 2) Avec le paramètre key:
  /// [categorie A]
  /// key1=valeur
  /// key2=valeur
  /// [categorie B]
  /// key1=valeur
  /// ...
  /// 
  /// Les 2 formes sont mélangeables au sein du même fichier:
  /// [categorie A]
  /// valeur
  /// [categorie B]
  /// key1=valeur
  /// ...
  ///  
  ///  La method clear et ses surcharges permet d'effacer une key, une categorie, ou de vider le fichier.
  ///  
  ///  La method write et ses surcharges permet d'écrire:
  ///  -une categorie dont la valeur est de type bool, int, string, Array, ArrayList
  ///  -une key dont la valeur est de type bool, int, string
  ///  
  ///  Les method read et leurs surcharges permettent d'écrire:
  ///  -une categorie dont la valeur est de type bool, int, string, Array, ArrayList et "lines" qui vaut string + "\r\n"
  ///  -une key dont la valeur est de type bool, int, string
  ///  Les method read sont nommées read_type, c'est à dire par exemple: read_int
  ///  La méthod read et sa surcharge correspond à la method read_string
  /// </summary>
Exemple d'utilisation (bidon):
using System;
public class example {
  private confini confini = new confini();
  public void example() {
    string genre;
    bool jaune;
    int nombre;
    genre = "banane";
    jaune = true;
    nombre = 12;
    confini.write("Fruits", "Variété", genre );
    confini.write("Fruits", "Jaune", jaune );
    confini.write("Fruits", "Quantité", nombre );
    //...
    genre = confini.read("Fruits", "Variété");
    jaune = confini.read_bool("Fruits", "Jaune");
    nombre = confini.read_int("Fruits", "Quantité");
  }
}

Conclusion :


Franchement, j'ai testé à peu près les 3/4 des possibilités sans voir de bugs. Pas plus, pas moins.

Tiens, je sais même pas si on peut dire de cette class que c'est une source .NET... :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_slysylvestre
Messages postés
11
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
23 mai 2008

Bon, pour les soucis d'espacements, j'abandonne: je poste le zip
cs_slysylvestre
Messages postés
11
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
23 mai 2008

Ça dit que ça peut mettre qq minutes avant de prendre en compte la MAJ... Bon, on va attendre. Quelle plaie ces tabulations...
cs_slysylvestre
Messages postés
11
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
23 mai 2008

J'oubliais...
Bien sur, j'avais vu cette soucre avant de coder celle ci-dessus, mais elle ne me convenait pas car je cherchait un truc passe-partout avec juste du read et du write.
Pis bon, étant donné que mon appli actuelle est plus à but autodidactique qu'autre chose, il aurait été un peu idiot pour moi de ne pas tenter de coder cette partie qui me fut d'un grand apport (gestion des class en fichier externes, surcharges, règles d'écritures...)
Merci d'avance de vos pardons et explications sur les monstruosités qu'elle contient surement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_slysylvestre)