![]() |
Eingebene Formel berechnen
Hallo zusammen,
ich möchte in einem Programm eine eingegebene Formel in einem Editfeld (z.B --> ((Jahr * 12) + Monate) * 0,083333 ) berechnen. Die Werte aus dem Beispiel für Jahr und Monate können zum Beispiel je aus einer Listviewspalte stammen oder aus einer anderen Komponente, die ich zusätzlich definiere zu der Formel. Die Formeln können natürlich variieren und sind nicht jedesmal gleich. Was wäre hier ein Lösungsansatz ? Gibt es dazu vielleicht schon eine Komponente ? |
AW: Eingebene Formel berechnen
|
AW: Eingebene Formel berechnen
Ich habe für solche Dinge Parser9 im Einsatz (etwas aufgebohrt), nicht als Komponente sondern zur Laufzeit erzeugt, Variablen werden über Name(variant/objekt)listen aufgelöst.
Ich habe die Komponente vor Jahren aus dem Netz gezogen, ich weiß nicht wo man sie noch finden kann, sicher gibt es reichlich ähnliches. |
AW: Eingebene Formel berechnen
|
AW: Eingebene Formel berechnen
ich habe auf dem Rechner hier, nichts installiert, vom überfliegen würde ich zu 99% ja sagen.
|
AW: Eingebene Formel berechnen
PS: Es gibt viele Mathebibliotheken (sogar mehrere hier im Forum).
z.B. ![]() ![]() ![]() ![]() ![]() ![]() Diesen Parser9 setzen wir auch auf der Arbeit ein, aber ohne die Formel etwas vorzuverarbeiten, sollte/kann man den nicht ordentlich nutzen. (z.B. Leereichen und Zeilenumbrüche rausfilten) und wir haben uns SQL-mäßig ":xxx"-Parameter reingemacht. Diese werden vorher gesucht, durch "param_xxx" ersetzt und im Parser als Konstante registirert. (leider fehlt ein Ereignis, wo man sich hätte vom Parser selber die "unbekannten" Parameter/Variablen/Konstanten hätte nennen lassen können, um sie dann da zu befüllen) Wegen der Upgrademöglichkeit haben wir den Parser-Code selber kaum verändert (1) und eben nur eine Vorverarbeitung vorgeschaltet, bzw. alles in eine Calc-Prozedur verpackt. 1: Ich hab nur eine öffentliche "sag mit alle bekannten Konstanten und deren Werte"-Methode integriert, da der Parser leider keine Möglichkeit zum Auslesen bietet, was aber zum Debuggen sehr nützlich wäre. Zitat:
|
AW: Eingebene Formel berechnen
Zitat:
|
AW: Eingebene Formel berechnen
Ich habe bis jetzt noch keine Download-Adresse gefunden für den Parser9. Hat da jemand eine Adresse für mich ?
|
AW: Eingebene Formel berechnen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich häng mal die von mir modifizierte Version an, Hauptanliegen war hier Rekursionen implementieren zu können ...
|
AW: Eingebene Formel berechnen
Hallo Thomas,
danke für die Unit. Ich werde die heute Abend al ausprobieren. |
AW: Eingebene Formel berechnen
Zitat:
Und die funktioniert sogar noch unter aktuellen Delphis, trotz des Alters. (bei 64 Bit wäre ich aber vorsichtig) |
AW: Eingebene Formel berechnen
Ich glaube
![]() |
AW: Eingebene Formel berechnen
@Jens01
ja, definitiv :thumb: |
AW: Eingebene Formel berechnen
Für sowas finde ich JclExprEval ideal.
|
AW: Eingebene Formel berechnen
Hallo zusammen,
ich danke euch allen für eure Antworten. Ich habe mir jetzt den Parser10 heruntergeladen und schon erste Tests damit gemacht, die recht vielversprechend aussahen. Ich werde mir auch noch die Unit JclExprEval anschauen. Damit habe ich erstmal das Wochenende zu tun. Ich melde mich, sobald ich mit meinen Tests durch bin. Gruß Rolf |
AW: Eingebene Formel berechnen
Hallo zusammen,
ich habe jetzt alles durchprobiert. Ich habe mich für den Parser10 aus Beitrag #10 von Jens01 entschieden. Danke nochmal an alle beteiligten. Gruß Rolf |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz