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

Windows Discussion :

[Configuration ] Quel format de fichier?


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 582
    Par défaut [Configuration ] Quel format de fichier?
    Bonjour,
    Je développe une application qui a besoin de gérer des configurations différentes selon les clients. Quel format de fichier utilisé pour gérer les données nécessaires?
    Les fichiers .ini me pose le problème d'une lecture/modification via un éditeur de texte : ce que je ne souhaite pas.
    Quelle autre solution existe?

    Merci

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    IniFile
    XML

    Pourquoi ne pas faire des objets qui gère tout cela ?
    Ainsi tu crées un outil de configuration de ton application qui gère le fichier à ta place, et ton programme n'aura plus qu'à lire ce fichier pour se customizer.

    Qu'en penses-tu ?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    3 338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 338
    Par défaut
    Il existe aujourd'hui 3 moyens classiques de stocker des paramètres dans une application :

    Les Fichiers INI :
    - La version old-school, j'entend par la le fichier INI qui est avant tout un réscapé de l'air Windows 3.11

    L'interet du INI c'est qu'il est simple, tu maitrise le fichier, tu peux en faire des copies, le restaurer, cela se fait simplement dans l'application via des copies de fichiers, c'est bien les options "faire une sauvegarde de la configuration"

    La structure commence à dater un peu, et n'est plus vraiment en adéquation avec les informations que tu pourrais avoir envie d'y mettre.

    Car on à arbre à 2 niveau : la section et le parametre

    Ex :

    [Section 1]
    Parametre1=machin
    Parametre2=truc
    Les API existent pour écrire nativement dans ce format de fichier.

    Le registre :

    La nous avons le successeur du fichier INI, le registre est apparu avec Windows 95.
    Il permet de stocker quasiment tout ce qu'on veut, le revers de la medaille c'est qu'il faut bien connaitre l'emplacement de ces objets dans tout ce fatras.
    Savoir à quoi corresponde chaque clé, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, etc...

    L'un des gros inconvénient à mon sens, c'est le manque de clarté, nos paramètres sont englobés dans un monstre, relativement opaque, on peux faire également des sauvegardes mais cela devient plus compliqués que des simples copie de fichier. Un autre problème c'est que le registre peut etre en lecture seule pour les utilisateurs, c'est assez galère si ton appli a été faite pour écrire dans le registre, il faut donc etre administrateur pour ecrire dans le registre -> galère.

    C'est malheuresement une confusion des genres que Microsoft à corrigé dans Vista, mais que nous n'aurons pas le plaisir de voir avant quelques mois.

    Troisième solution le fichier XML

    Le fichier XML est la nouvelle génération, par le support on pourrait le comparer au fichier INI, mais il permet de stocker bien plus de chose, de par son modèle arbraire (arbre n-aire), on peut descendre dans autant de niveau que l'on veut.

    Ex :
    <USERS>
    <USER name="Gaël">
    <BACKCOLOR>
    #FFFFFF
    </BACKCOLOR>
    </USER>
    <USER name="Vincent">
    <BACKCOLOR>
    #000000
    </BACKCOLOR>
    </USER>
    </USERS>
    On peut faire un peu ce qu'on veut avec un fichier XML, la seul regle, c'est comme en HTML, une balise ouverte doit toujours etre fermée.

    L'inconvénient du XML, c'est que tu va etre obligé de creer toi meme l'outil de gestion du XML, car ce format etant nouveau, seul les nouveaux IDE intégre des outils pour traiter le XML, pas de gestion de XML en natif dans VB6 par exemple. En revanche tu peux trouver des classes qui s'en occupe.

    D'autres avis ?

  4. #4
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    La gestion des données de configuration des logiciel est une question ouverte à laquelle chaque développeur peut apporter sa propre réponse, en fonction de ses besoins et de ses objectifs.

    Les fichiers .ini (à la windows old-school) et les fichiers XML ont l'avantage d'être du texte, assez facile à corriger (moyennant le respect du format). Comme il s'agit de texte, c'est clairement portable. Ils présentent aussi les données en clair, ce qui semble être un inconvénient dans ton cas.

    Le registre est bien une autre solution. Elle n'a cependant d'intérêt que sur les plates-formes windows. Il faut cependant noter que la base de registre peut tout à fait être modifiée (par un utilisateur privilégié, certes, dans les systèmes sécurisés), ce qui semble aussi aller à l'encontre de ton souhait.

    Il reste aussi les possibilités de fichiers de configuration binaires, au format obscur et connu de toi seul. Il s'agit, ni plus ni moins, d'une copie binaire dans un fichier de la zone de mémoire où tu stockes ta "structure" ou ton "objet" de configuration. Ce n'est pas idéalement pratique pour le débuggage, mais cela obscurcit le format et rend la modification des données de configuration beaucoup plus délicate pour celui qui n'a pas le source/la documentation du format utilisé. Cette solution n'est pas portable sans efforts (il existe des solutions pour rendre un ensemble de données binaires compatibles entre plates-formes à l'Endian différent).

    Maintenant, j'ai déjà vu des programmes utilisant un joyeux mix de formats différents dans leurs fichiers, selon ce qu'ils avaient à cacher ou non ...

Discussions similaires

  1. quels format de fichiers pour l'animation DirectX
    Par korsakoff69 dans le forum DirectX
    Réponses: 6
    Dernier message: 06/07/2009, 22h44
  2. Réponses: 2
    Dernier message: 04/11/2008, 16h19
  3. Réponses: 0
    Dernier message: 14/12/2007, 14h01
  4. [MySQL] Quel format de fichier est le plus simple à importer vers MySQL ?
    Par xenos dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/08/2007, 23h59
  5. Quel format de fichier utiliser pour les maps ?
    Par fb57 dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/09/2004, 20h22

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