Seite 1 von 1
Re: Direkte Berechnung im Textfeld
Verfasst: Mi, 19.12.2012 09:03
von juetho
Schwierig. Dazu musst du dir einen eigenen Parser schreiben, der den eingegebenen Text analysiert: Wenn er mit dem Gleichheitszeichen beginnt, muss der String aufgeteilt werden in Teiltext1 - Rechenzeichen - Teiltext2 (möglicherweise noch weitere Rechenzeichen und Klammern, je nachdem wie weit du das treiben willst). Am einfachsten dürfte es noch mit regulären Ausdrücken gehen; suche im Forum nach SearchDescriptor. Jürgen
Re: Direkte Berechnung im Textfeld
Verfasst: Mi, 19.12.2012 09:43
von Stephan
Gibt es da eine Möglichkeit?
Da ich nicht genau weiß wie man =5-3 mittels com.sun.star.sheet.FunctionAccess nutzt, würde ich die Formel einfach eingebettet in die Summenfunktion (sinngemäß also =SUMME(5-3)) mittels com.sun.star.sheet.FunctionAccess nutzen, siehe:
http://www.dannenhoefer.de/faqstarbasic ... enden.html
Gruß
Stephan
Re: Direkte Berechnung im Textfeld
Verfasst: Mi, 19.12.2012 09:57
von Karolus
Stephan hat geschrieben:Gibt es da eine Möglichkeit?
Da ich nicht genau weiß wie man =5-3 mittels com.sun.star.sheet.FunctionAccess nutzt, würde ich die Formel einfach eingebettet in die Summenfunktion (sinngemäß also =SUMME(5-3)) mittels com.sun.star.sheet.FunctionAccess nutzen, siehe:
http://www.dannenhoefer.de/faqstarbasic ... enden.html
Ich kann mir nicht vorstellen das das funktioniert -
Calc parst und evaluiert '5-3'
bevor das Ergebnis an die SUMMEn-funktion weitergereicht wird ?!
@jo
in Basic werden die Argumente nicht mit ;semicolon getrennt, sondern mit ,komma.
In Python wäre
möglich, (quick an dirty - weil das
alles tut was ins Textfeld in gültiger Python-syntax eingetragen wird)
Karolus
Re: Direkte Berechnung im Textfeld
Verfasst: Mi, 19.12.2012 10:00
von juetho
jo1234 hat geschrieben:b = mid("Hallo";2;2)
(war zum testen)
Jetzt bekomme ich einen Syntaxfehler "Fehler in Klammerschachtelung".
Das sieht eher nach einer verwirrenden Fehlermeldung aus. Nach meiner Hilfe werden die Parameter bei MID mit Komma, nicht mit Semikolon getrennt. Jürgen
Re: Direkte Berechnung im Textfeld
Verfasst: Mi, 19.12.2012 10:16
von Stephan
Ich kann mir nicht vorstellen das das funktioniert - Calc parst und evaluiert '5-3' bevor das Ergebnis an die SUMMEn-funktion weitergereicht wird ?!
Der Einwand ist berechtigt.
Meine Antwort ging davon aus das man nicht wissen kann wie komplex die REchenausdrücke werden, in jedem Fall aber nur gültige Operatoren (+,-,*,/,^) vorliegenund man somit nur das "=" abtrennen muß, also immer nur das erste ZEichen links vom Gesamtausdruck und den verbleibenden Ausdruck dann an die SUMME-Funktion übergeben kann.
Wenn ich das jetzt kurz prüfe sehe ich das das so leider tatsächlich nicht geht.
Ein möglicher workaround, unter Beachtung dessen das es nur um gültige (also auch in Basic selbst gültige) Operatoren ginge wäre mittels Makro zur Laufzeit ein neues Makro zu erzeugen (ungefähr gemäß:
http://www.dannenhoefer.de/faqstarbasic ... schen.html) was den Ausdruck (z.B. =5-3) als REchenschritt enthält und dieses anschließend auszuführen. Ich kann nur momentan nicht sagen ob das im selben Dokument ginge ohne Neuladen.
Man könnte jedoch unter Windows ein VBS zur Laufzeit erzeugen und ausführen und daher das Ergebnis gewinnen.
Gruß
Stephan