Direkte Berechnung im Textfeld
Moderator: Moderatoren
Re: Direkte Berechnung im Textfeld
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
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Direkte Berechnung im Textfeld
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:Gibt es da eine Möglichkeit?
http://www.dannenhoefer.de/faqstarbasic ... enden.html
Gruß
Stephan
Re: Direkte Berechnung im Textfeld
Ich kann mir nicht vorstellen das das funktioniert - Calc parst und evaluiert '5-3' bevor das Ergebnis an die SUMMEn-funktion weitergereicht wird ?!Stephan hat geschrieben: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:Gibt es da eine Möglichkeit?
http://www.dannenhoefer.de/faqstarbasic ... enden.html
@jo
in Basic werden die Argumente nicht mit ;semicolon getrennt, sondern mit ,komma.
In Python wäre
Code: Alles auswählen
eval( ausdruck )
Karolus
Zuletzt geändert von Karolus am Mi, 19.12.2012 10:08, insgesamt 2-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Direkte Berechnung im Textfeld
Das sieht eher nach einer verwirrenden Fehlermeldung aus. Nach meiner Hilfe werden die Parameter bei MID mit Komma, nicht mit Semikolon getrennt. Jürgenjo1234 hat geschrieben:b = mid("Hallo";2;2)
(war zum testen)
Jetzt bekomme ich einen Syntaxfehler "Fehler in Klammerschachtelung".
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Direkte Berechnung im Textfeld
Der Einwand ist berechtigt.Ich kann mir nicht vorstellen das das funktioniert - Calc parst und evaluiert '5-3' bevor das Ergebnis an die SUMMEn-funktion weitergereicht wird ?!
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