Class confini pour gerer les fichiers .ini

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

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)