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 :

Transmettre des valeurs à mon exécutable et les enregistrer


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 37
    Par défaut Transmettre des valeurs à mon exécutable et les enregistrer
    Bonjour,

    Je cherche à transmettre des valeurs à mon exécutable (dans mon programme C++) mais je sais pas vraiment comment le faire.

    Contexte: J'ai besoin de paramètres que je lis dans un fichier. Mais je veux le faire une fois (configuration faite au départ) puis faire que mon application retiennent ces valeurs et soit indépendante du fichier.

    Je cherche donc une méthode qui donne des valeurs à mon application puis que celle-ci les enregistre et fonctionne avec. Qu'on perde pas nos données à la fermeture de l'application.

    Merci d'avance.

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    A la fermeture de l'application, il n'existe plus rien.
    A chaque lancement de l'application, tu dois obtenir à nouveau ces données.
    Tu as deux grandes formes de solutions: le demander à un autre programme, ou l'obtenir depuis une source de données "passive".

    Un autre programme, ca peut être par exemple un web service ou un service du système d'exploitation.
    Comme source de données "passive", on peut utiliser un fichier, les arguments de ligne de commande, une base de donnée (etc?).

    Cela dit, si l'utilisateur a besoin du fichier à la première utilisation, ton application ne peut pas en être indépendante.
    Une autre forme de solution, c'est que les données soient incorporées dans l'application à la compilation.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2017
    Messages : 37
    Par défaut
    Merci pour ta réponse.

    Un autre programme sera à exclure (sauf si je décide de passer par la BD SQL sur laquelle on travaille mais qu'on utilise pour autre chose.)
    La solution avec la source de données "passive" m'intéresse et c'est peut-être ce que je recherche.
    A la base on un fichier. Mais comme je l'ai déjà expliqué on le lit qu'une fois (à la configuration) puis je veux ne plus avoir recours à ce fichier. (mais où et comment va t-il les enregistrer à la configuration)

    Elle n'est certes pas indépendante du fichier mais je veux qu'elle le soit juste à la configuration. Est-il possible qu'elle le soit plus plus tard? (c'est justement ce que je cherche à faire)

    "Une autre forme de solution, c'est que les données soient incorporées dans l'application à la compilation."
    J'ai pas cerné ce que tu me propose, tu peux me détailler ta proposition?

    On m'a parlé de registre dans le chat, c'est une solution?

    Merci d'avance.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 500
    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 500
    Par défaut
    On m'a parlé de registre dans le chat, c'est une solution?
    Oui, je vous aurais aussi conseiller la Registry.

    Mais, normalement, c'est pas pour votre type de besoin, que je ne cerne pas trop non-plus.

    C'est du pure Windows, donc non portable.

    Vous collez un fichier ini avec votre application, et le runtime Windows sauvegardera son contenu dans la base de registre.
    C'est généralement fait pour avoir une configuration différente par utilisateur, avec une source de données par défaut dans un .ini (comme sous DOS des années 80).

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Pourquoi être aussi opposé à l'utilisation d'un fichier de configuration pour enregistrer la configuration quand t'en utilises déjà un pour la "configuration initiale" ?
    C'est de loin la meilleure et plus simple idée, en plus d'être la plus logique : ton fichier de config, tu le lis au démarrage de l'application pour l'appliquer. Que ce soit le premier ou 100000° lancement tu t'en moques.
    Sinon comment de toutes façons tu fais pour distinguer que "alors là c'est le premier lancement, je dois lire le fichier de configuration", "là c'est pas le premier lancement, je dois lire la configuration depuis ..." ? Question à laquelle tu ne sembles pas avoir répondu sinon tu aurais des solutions (double fichier config, tester l'existence, lecture depuis une db, étape supplémentaire de compilation etc)
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    Tu peux obter pour une configuration par défaut en dur dans ton code. Lors de l'ouverture de l'application, celle-ci cherche un fichier de config, si non existant, il en créé un basé sur la config en dur. Aux ouverture suivantes, c'est le fichier de config qui est utilisé.Tu peux ensuite modifier la config à la main ou depuis ton code.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/06/2008, 13h47
  2. Transmettre des valeurs entre WizardPage
    Par kennygunie dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 13/05/2008, 18h11
  3. Réponses: 4
    Dernier message: 11/02/2008, 14h32
  4. Réponses: 1
    Dernier message: 25/09/2005, 20h03
  5. Réponses: 17
    Dernier message: 18/03/2005, 09h23

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