Entwickler-Ecke
Basistechnologien - String auswertung
mokus - Mo 08.02.10 23:35
Titel: String auswertung
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.
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 - Mo 08.02.10 23:48
mokus hat folgendes geschrieben : |
| 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
http://www.codeproject.com umschauen. Schneller, kompakter, ressourcensparender und portabler als ein spezieller Matheparser geht es jedenfalls nicht.
mokus - 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 - 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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!