Autor Beitrag
mokus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win 7 Pro.
C#, VS 2010
BeitragVerfasst: Mo 08.02.10 23:35 
Hallo,
ich suche eine Möglichkeit, einen String auswerten zulassen, dieser besteht aus einer Funktion (x^2). Mein erster Gedanke war wie on PHP oder sonst wo, nach einer Methode z.B. eval() zu suchen, aber so etwas gibt es unter C# meines Wissens nicht, da es durch die Kompilierung nicht möglich ist.
Deshalb suche ich jetzt nach einer Lösung die auch von NET.CF unterstützt wird. Am besten wäre eine freie Lösung, also keinen fertigen Parser.

Erste Versuche habe ich mit diesem Beispiel erzielt, etwas langsam und was sehr Wichtig für mich ist, die Kompatibilität mit NET.CF die aber nicht vorhanden ist. Leider gibt es keinen Verweis bei Windows Mobile Projekten und so bin ich auf der Suche, nach einer Ressourcen armen Möglichkeit Mathe Funktionen um zu rechnen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
public static double Evaluate(string expression)
{
   if (String.IsNullOrEmpty(expression)) throw new ArgumentNullException("expression");

   return Convert.ToDouble(Microsoft.JScript.Eval.JScriptEvaluate(expression, Microsoft.JScript.Vsa.VsaEngine.CreateEngine()));
}
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 08.02.10 23:48 
user profile iconmokus hat folgendes geschrieben Zum zitierten Posting springen:
Am besten wäre eine freie Lösung, also keinen fertigen Parser.
Wie meinen? Ich interpretiere das mal so, dass du nur Open-Source-Lösungen willst, dann solltest du dich mal bei www.codeproject.com umschauen. Schneller, kompakter, ressourcensparender und portabler als ein spezieller Matheparser geht es jedenfalls nicht.

_________________
>λ=
mokus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win 7 Pro.
C#, VS 2010
BeitragVerfasst: Di 09.02.10 00:00 
Naja die Sache ist einfach die, wenn ich das Programm vertreiben möchte, dann hätte ich halt den Rechtlichen Hintergrund wegen dem fertigen Matheparser.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 09.02.10 00:09 
Dass den meisten OSS-Projekten eine genaue Lizenz beiliegt, hast du aber schon bemerkt?
Ich habe eigentlich keinen Schimmer, was du mit "Rechtlichem Hintergrund" meinst, aber so, wie es sich anhört, solltest du wohl lieber bald mal mit deinem eigenen Parser anfangen.

_________________
>λ=