rechnen
-
- Beiträge: 369
- Registriert: Sa 3. Mär 2007, 16:03
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Bramsche (Emsland)
rechnen
hallo,
ich möchte ganz gerne, das ein string, z.B. "1+5*5+(4-1)" ausgerechnet wird, und die zahl dann in eine variable des types single gesteckt wird, wie kann man das machen?
ich möchte ganz gerne, das ein string, z.B. "1+5*5+(4-1)" ausgerechnet wird, und die zahl dann in eine variable des types single gesteckt wird, wie kann man das machen?
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Ja, da gibts ein ganz einfaches Verfahren
...du brauchst schlicht und ergreifend nen Parser.
Mit anderen Worten du musst dir nen Programm schreiben, was den String in seine Bestandteile zerlegt und anschließend bzw. als Baum die einzelnen Knoten auflöst, indem die entsprechenden Operationen nacheinander ausgeführt werden.
Beim Zerlegen hast du typische Token, wie Operationszeichen, an welche due den String aufsplitten kannst.

Mit anderen Worten du musst dir nen Programm schreiben, was den String in seine Bestandteile zerlegt und anschließend bzw. als Baum die einzelnen Knoten auflöst, indem die entsprechenden Operationen nacheinander ausgeführt werden.
Beim Zerlegen hast du typische Token, wie Operationszeichen, an welche due den String aufsplitten kannst.
Johannes
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Nein, da gibt keine vorgefertigte Funktion, zumindest nicht von Haus aus. Das ganze ist auch ne wahnsinnig komplexe Angelegenheit, wenn man nicht gerade nur die Grundrechenarten da reinbringen will.
Es sollte allerdings einige Units geben, die das übernehmen.
Allerdings kenn ich zumindest keine für FPC, für Delphi könntest du mal in den üblichen Quellen suchen und schauen, ob die unter FPC auch laufen (bzw. hier: http://www.torry.net" onclick="window.open(this.href);return false;).
Es sollte allerdings einige Units geben, die das übernehmen.
Allerdings kenn ich zumindest keine für FPC, für Delphi könntest du mal in den üblichen Quellen suchen und schauen, ob die unter FPC auch laufen (bzw. hier: http://www.torry.net" onclick="window.open(this.href);return false;).
Johannes
Hier z.B: http://www.pisarev.net/" onclick="window.open(this.href);return false;
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
die gibt es tonnenweise für Delphi, ich denke mit wenig Aufwand müssten sie
auch unter Lazarus laufen. z.b. hier gibt es sehr viele davon:
http://www.delphi-forum.de/" onclick="window.open(this.href);return false;
ich glaube auch hier:
http://www.delphipraxis.net/forum_main.html" onclick="window.open(this.href);return false;
Aber ich kann mir nicht vorstellen das sowas schwer ist selbst zu Bauen..... für Lazarus als Funktion z.b......
auch unter Lazarus laufen. z.b. hier gibt es sehr viele davon:
http://www.delphi-forum.de/" onclick="window.open(this.href);return false;
ich glaube auch hier:
http://www.delphipraxis.net/forum_main.html" onclick="window.open(this.href);return false;
Aber ich kann mir nicht vorstellen das sowas schwer ist selbst zu Bauen..... für Lazarus als Funktion z.b......
MFG
Michael Springwald
Michael Springwald