Sooooo, ich habe jetzt einen funktionierenden Parser! *froi*
Den habe ich aber auch nur mit Hilfe von
hier bauen können. An dieser Stelle einen
riesen Dank an Herrn Mohr für diesen einfachen, verständlichen, und ausserdem unglaublich einfach an meine Bedürfnisse anpassparen Parser! Klasse! Damit, und mit meiner Vorarbeit des Schreibens der Rechenoperationen in der Form "Ergebnis := Operation(x, y)" war es eine Sache von wenigen Minuten (grundlegendes Verstehen der Arbeitsweise des Parsers inbegriffen) es so umzubauen, das es passt. Zwar blicke ich das Teil noch nicht ganz, aber ich bin nah dran
Jetzt kommt aber das dicke
ABER! Der ist bei einer ganzen Reihe von Berechnungen natürlich super-langsam, da der Formel-String jedes Mal neu geparsed wird, obwohl sich die Struktur nie ändert, sondern nur die Variableninhalte.
Ich müsste jetzt also eine Möglichkeit finden, die Informationen aus dem geparsten String so zu hinterlegen, dass sie
super-performant wieder abrufbar sind.
Hat da zufällig einer einen heissen Tip parat?
Hab ja schließlich nicht meine Rechenfunktionen zum Teil mit Assembler hand-optimiert, damit mir ein Parser die ganzen Geschwindigkeitsgewinne wieder ad absurdum führt
.
An der Array-Sache muss ich mal rumdoktorn, aber erst morgen (das ist ja schon in Kürze...
).
Bin aber für andere Ansätze nach wie vor absolut offen!
Habt Dank,
ein glücklicher und müder dizzy
\\die ganzen Edits: Um 4 Uhr morgens macht man Rechtschreibfehler. Sonst ist was falsch
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel