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

VB.NET Discussion :

fonction pour évaluer une chaine et retourner un résultat


Sujet :

VB.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations forums :
    Inscription : Décembre 2005
    Messages : 186
    Points : 133
    Points
    133
    Par défaut fonction pour évaluer une chaine et retourner un résultat
    Bonjour,

    Je cherche une fonction qui permet d'évaluer une chaine de caractère comme étant une instruction.
    Par exemple, si j'ai une chaine du type "(12+12)*10", je voudrais que la fonction puisse parser cette chaine et me retourner 240.
    Je ne sais pas si cela existe en .NET, du moins je n'ai pas encore trouver, mais il existe une fonction qui permet cela en Javascript (la fonction eval). Si un langage assez simple comme le javascript supporte une telle fonctionnalité, je me suis dit qu'il y avait peut-être l'équivalent en .NET.

    Merci d'avance !

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 90
    Points
    90
    Par défaut
    je sais pas si y telle fonction
    mais si j'etait a ta place je vais m'enservir de mes connaissances en traitement des chaines des caracteres.
    je vais parcourir la chaine et triter chaque caracteres (chiffre,operateur,parenthses ...) et je fait le calcul.

    je sais aue si dur mais ca permet de donner de la fraicheur, je n'ai mard d'utiliser des choses pre etablie

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Cette question est récurrente et j'ai déjà posté une solution basée sur une compilation dynamique.

    Utiliser la fonction "recherche"

    EDIT : c'est

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par killer69 Voir le message
    je sais pas si y telle fonction
    mais si j'etait a ta place je vais m'enservir de mes connaissances en traitement des chaines des caracteres.
    je vais parcourir la chaine et triter chaque caracteres (chiffre,operateur,parenthses ...) et je fait le calcul.
    Complication un peu inutile, non ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations forums :
    Inscription : Décembre 2005
    Messages : 186
    Points : 133
    Points
    133
    Par défaut
    Merci pour vos réponses !
    Je n'avais pas du tout pensé à une compilation dynamique ; je vais regarder ton code (qui n'est pas évident tout de même), mais ça me semble effectivement une super solution qui m'évite de me compliquer la vie en programmant un interpreteur. Je pense que le problème est résolu

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    J'ai posté dans la salle "Contribuez" ICI une version un peu plus élaborée du code. Notamment, il parse les symboles de la classe Math, de manière case-insensitive et on peut donc maintenant écrire par exemple :

    qui est traduit en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    10 * Math.Cos(Math.PI / 2)
    Ainsi que quelques petites améliorations (grâce à une réunion reportée sine die ce qui m'a libéré 1/2 heure )

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

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

Discussions similaires

  1. Fonction pour tronquer une chaine de caractère
    Par nekcorp dans le forum Langage
    Réponses: 7
    Dernier message: 29/09/2014, 13h05
  2. fonction pour déserializer une chaine GET
    Par CaviarNAS dans le forum Langage
    Réponses: 4
    Dernier message: 13/01/2011, 16h43
  3. Fonction pour charger une chaine formaté
    Par dxdiag dans le forum Débuter
    Réponses: 5
    Dernier message: 08/02/2008, 21h35
  4. sizeof dans une fonction pour lire une chaine
    Par Haze. dans le forum Débuter
    Réponses: 11
    Dernier message: 06/11/2007, 12h07
  5. Réponses: 15
    Dernier message: 26/03/2006, 12h10

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