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

C++ Discussion :

Fichier .ini et Winform en C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 311
    Par défaut Fichier .ini et Winform en C++
    Bonjour, je suis acctuellement en train de travailler sur un projet en Winform et j'aimerai utiliser les fichiers ini pour pouvoir sauvegarder ma configuration d'application. Par exemple, si lors de l'utilisation de mon applcation je modifie manuellement la largeur ou position d'une fentre, j'aimerai que ce parametre soit enregistrer de façon à ce que la prochaine fois , lorsque j'ouvrirai cette fenetre , elle soit à la meme position que quand je l'avait ferner. Et ce pour tout autres types de composants tel que les datagrid(longeur, largeur, position des collones . . .)

    Quelqu'un aurait-il une methode, simple est efficace ?

    Merci

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Les fichiers ini ont tendance à être passés de mode.
    De nos jours, soit on utilise le Registre, soit la configuration XML de .Net (encore peu usitée).

    Sinon, je ne sais plus à quoi servent exactement les Settings de Windows Forms, mais ça peut être lié aux histoires de configuration XML. À voir.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 482
    Par défaut
    .INI, c'est une vieille méthode qui ne permet pas de faire une distinction entre les configurations au niveau application et celles au niveau de l'utilisateur.
    Sommes-nous d'accord que votre sauvegarde est liée à un utilisateur et pas à toute l’application?

    Voici un tutoriel pour utiliser les fichiers de configuration .NET en C++/CLI.
    http://nico-pyright.developpez.com/t...rationsection/

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Pas en base de registre, svp : ça pollue et c'est une utilisation abusive du mécanisme... Surtout que je ne connais pas beaucoup de développeurs qui ont la courtoisie de nettoyer la BDR des scories faites après l'installation lors de la désinstallation du programme.
    Au moins, un .INI, ça se nettoie sans chercher trop fort, c'est un des fichiers qui reste après la désinstallation et qui fait gueuler le setup comme quoi il n'a pas pu supprimer le répertoire de l'application.

    Le .INI, situé dans le répertoire de l'application elle-même, est la solution la plus simple (cf. WritePrivateProfileString et fonctions associées). Toutefois, comme toute fonctionnalité simple, elle a des inconvénients : notamment, rien ne sera sauvegardé (ni relu !!!) si tu ne le décides pas toi-même.
    Sauvegarder la position de la fenêtre ? Quatre valeurs à sauver... La position des splitters ? Encore une valeur... Le dernier chemin d'ouverture de fichier ? Et une chaîne, une ! Etc.

    L'autre méthode, c'est le XML : plus lourd à manipuler qu'un .INI, certes, mais derrière, tu as une structure en RAM pouvant être lue et écrite, et surtout, re-sérialisée sur le disque. De plus, en fonction de la technologie / plate-forme, les objets graphiques savent parfois s'initialiser depuis un flux XML, et également se "sauver" dedans. Avec des plate-formes un peu évoluées (.NET, ou encore des RAD comme BCB/Delphi), c'est une méthode plus souple et fiable que le .INI "classique". Par contre, ça demande du boulot pour se mettre le mécanisme dans la tête.

    Citation Envoyé par bacelar Voir le message
    .INI, c'est une vieille méthode qui ne permet pas de faire une distinction entre les configurations au niveau application et celles au niveau de l'utilisateur.
    Et les sections, ça sert à quoi d'après toi ??
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 482
    Par défaut
    Et les sections, ça sert à quoi d'après toi ??
    En section par utilisateur ??
    Et avec un utilisateur qu'on ne connait ni d'eve ni des dents ?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Et les sections, ça sert à quoi d'après toi ??
    Ce n'est pas une section qui va te permettre de modifier ton fichier ini dans Program Files en tant qu'utilisateur limité...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par bacelar Voir le message
    En section par utilisateur ??
    Et avec un utilisateur qu'on ne connait ni d'eve ni des dents ?
    Sûr, c'est très difficile de récupérer le nom de l'utilisateur courant depuis le thread principal, et d'utiliser cet identifiant soit comme préfixe de nom de section, soit de générer un .INI spécifique pour cet utilisateur... Marche aussi avec un XML, d'ailleurs, ça permet de pouvoir supprimer une personnalisation sans devoir perdre les autres ou éditer manuellement le XML.

    Après, faut aussi faire attention à ce que l'on stocke dans un fichier de configuration lisible (inclus XML, donc), genre mots de passe en clair et autres informations personnelles.
    Il faut aussi relativiser la paranoïa : là, on parle d'une application end-user, où l'on doit "protéger" des données de configuration de façon toute relative, vu que l'on doit juste éviter de mélanger les préférences des personnes qui ont un accès physique à la machine, c'est à dire la propre famille de l'utilisateur...

    Citation Envoyé par Médinoc Voir le message
    Ce n'est pas une section qui va te permettre de modifier ton fichier ini dans Program Files en tant qu'utilisateur limité...
    Bof... Un coup de GetVersionEx, puis tu prends FOLDERID_ProgramData sous Vista (%APPDATA% en variable d'environnement) si tu veux éviter ce souci. Si cela pouvait être le seul et unique problème lors d'un développement, on serait chez les Bisounours...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 482
    Par défaut
    Le truc, c'est qu'avec C++/CLI et des fichiers de configurations en XML, toutes ces cochonneries à faire à la main, et bien d'autre, sont faites de manières TOTALEMENT transparentes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvegarde des attributs de texte en fichier ini
    Par Raylemon dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2003, 21h28
  2. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 20h40
  3. Fichiers INI et TlistBox
    Par Philippe01 dans le forum Langage
    Réponses: 3
    Dernier message: 11/06/2003, 15h36
  4. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 08h16
  5. faire un fichier .ini
    Par florent dans le forum C++Builder
    Réponses: 14
    Dernier message: 31/05/2002, 22h06

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