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 :

Substitution de nom de variable à partir d'une chaine de caractères


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Substitution de nom de variable à partir d'une chaine de caractères
    Bonjour à tous,
    Je bloque sur un problème qui semble assez pointu, j'ai épuisé toutes mes idées, c'est pourquoi je requière votre aide.

    Je cherche le moyen de lire un nom de variable dans un fichier et ainsi utiliser le nom et la valeur de la variable que je viens de lire.

    Je m'explique. Dans un fichier texte, j'ai une liste de variable avec les types. Ce sont des variables déjà déclarées et initialisées. Le fait de lire un nom de variable dans le fichier texte, appelle une fonction en prenant en paramètre la variable. Le problème est comment affecter à une variable la valeur d'une autre variable dont on récupère le nom par lecture de fichier (probablement une chaine de caractères)?

    Ce que je pensais faire c'était de lire caractère par caractère le type de chaque variable et appeler la fonction correspondant au type. Sachant que je veux faire un même traitement sur les variables, mais le fait d'avoir des types différents j'ai dû faire des fonctions différentes en changeant juste le type des paramètres. Y-a-t-il un équivalent en C du template en C++ pour faire une seule fonction?

    Merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    je n'ai pas tout compris...

    Tu as un fichier

    toto.txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MaVarDouble = 3.5
    MaVarString = "totot"
    et tu veux le lire, ok.

    Mais après, si je comprend ce que tu veux dire, tu voudrais pouvoir trouver automatiquement une variable du programme C s'appellant MaVarDouble, c'est ça ?

    Si c'est ça, c'est impossibe. Il te faudrait dé-compiler. Dans le programme binaire, tu n'as plus de noms de variables...

    Si par contre tu veux décoder ton fichier texte et affecter les valeurs à des variables du bon type, mais de noms indépendants, tu peux le faire. Ca s'appelle se fabirquer un fichier (et un loader) de ressources.. ou de config..

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Malheureusement, c'est la solution impossible.

    j'ai plusieurs variables globales :
    char un_char=50;
    double un_double=10.5;
    float un_float=120.6;

    dans un fichier texte j'ai:
    char un_char;
    float un_float;

    et en fonction de ce qui est lu dans le fichier texte j'appelle
    char TraitementChar(char un_char)
    float TraitementFloat(float un_float)

    Sachant que TraitementChar et TraitementFloat font exactement la même chose, mais avec des types différents.

    Merci quand même.

Discussions similaires

  1. [Débutant] appeler une variable à partir d'une chaine de caractères
    Par caoutchouc159 dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/04/2012, 11h56
  2. Assignation de variables à partir d'une chaine de caractères
    Par Yorel2006 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 01/04/2009, 14h58
  3. Réponses: 6
    Dernier message: 04/02/2008, 13h18
  4. Réponses: 2
    Dernier message: 20/07/2007, 16h17
  5. Réponses: 7
    Dernier message: 15/11/2005, 10h14

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