2009-06-30 4 views
1

J'ai quelques valeurs dans un fichier de configuration (fichier XML) avec certaines valeurs comme celle-ci:Un moyen d'obtenir le résultat d'une expression de calcul simple?

<IncreamentInSeconds>24*60*60</IncreamentInSeconds> 
... 

je pourrais mettre la valeur 86400 là, mais il est plus descriptif comme une expression de calcul. Ceci est juste un exemple simple. Il y a aussi d'autres expressions, mais elles sont toutes dans une sorte d'expressions de calcul.

Je ne suis pas sûr s'il y a un moyen d'analyser l'expression et d'obtenir la valeur de résultat en C#. J'ai pensé au composant Excel qui peut être utile, mais je pense que cela pourrait causer des problèmes de performance (pour charger une feuille de calcul Excel avec une cellule?). Un autre moyen d'obtenir le résultat? En passant, j'ai vu quelques exemples de XCode pour obtenir le résultat de l'expression en utilisant la commande shell pour évaluer le résultat (le shell peut même prendre des définitions de variables). Vous ne savez pas s'il existe une commande shell dans Windows qui pourrait être utilisée pour que je puisse exécuter la commande shell pour obtenir le résultat?

Répondre

1

probablement la façon la plus simple de le faire est d'utiliser Microsoft.JScript http://riteshk.blogspot.com/2007/05/how-to-calculate-value-with-regular.html

Si vous voulez faire cela sans utiliser la bibliothèque javascript vous pouvez toujours utiliser la notation polonaise inversée: http://en.wikipedia.org/wiki/Reverse_Polish_notation

Lien vers convertir infix RPN: http://montcs.bloomu.edu/~bobmon/Information/RPN/infix2rpn.shtml

aussi voici un lien vers un analyseur d'expression RPN: http://www.codeproject.com/KB/cs/rpn_expressionparser.aspx

0

Je crois que j'ai eu la réponse. J'ai trouvé que CodeDOM peut être utilisé pour obtenir le résultat d'une expression de calcul.

Et voici an article with examples.

+0

Il semble très puissant, cependant, très compliqué. Un moyen simple? –

+0

un autre exemple similaire à: http://forums.techarena.in/software-development/1109842.htm –

Questions connexes