AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie am besten Parsen?

Ein Thema von malo · begonnen am 30. Apr 2005 · letzter Beitrag vom 28. Nov 2005
 
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#34

Re: Wie am besten Parsen?

  Alt 23. Nov 2005, 20:16
Das war schön ausführlich und gut erklärt, danke alzaimar
Allerdings sollte es nur ein kleiner Matheparser werden, ohne "Sprachfeatures" oder sowas *g*
Ich hab mir schon Routinen geschrieben, die mir eben true zurückgeben, wenn ein Zeichen ein Punkt-Operator, ein Strich-Operator oder so ist.
Außerdem wird ein Term bereits ordentlich zerlegt,
aus
Code:
45*(60-18)+382/(+102)-3^897
zerlegt er also
Code:
45  *  (  60  -  18  ) +  382  /  (  +  102  ) -  3  ^  897
Das klappt soweit schon ganz gut

Ich denke, wenn ich auf eine "(" stoße, schaue ich, ob dahinter ein "-" ist mit einer anschließenden Zahl, und dann wieder die ")", dann speichere ich die negative Zahl in der Klammer in eine Variable, sehe dann, was nach der Klammer für ein Rechenzeichen kommt (speicher ich in einen eigenen Variablen-Typen, der u.A. auch "KeinOperator" enthält), danach hol ich mir die andere Zahl und "verwurste" die beiden per Operator. OK, es gibt natürliuch auch den Fall, dass die Zahl in der Klammer die hintere der beiden zu verwurstenden Zahlen ist, aber das seh ich ja daran, ob in meiner Operator-Variable "KeinOperator" oder was anderes gespeichert ist
Denkt ihr, das wäre ein guter funktionierender Ansatz?
Performance spielt erstmal keine Rolle
Julian J. Pracht
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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