Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#13

Re: boolesche Formel ausrechnen

  Alt 13. Sep 2004, 10:32
Hab vergessen zu erwähnen :
ich habe mal an mehrere Stellen im Internet gefragt:

http://spotlight.de/zforen/dlp/m/dlp...425-19161.html
http://www.delphi-forum.de/viewtopic...asc&highlight=

Allerdings gibt es hier derzeit die inhaltlich besten Antworten - Also VIELEN DANK


@Nothine: Danke für dein Bemühen,
allerdings hatte ich dazu gesagt :
Zitat:
es war eigentlich so gedacht, dass die formel in einem [b]string[b] steckt,
und dann ausgewertet werden muss.
Zitat von xineohp:
@Dezipaitor: Um was für Datentypen soll es sich hier eigentlich handeln? Nur string, double, integer, etc. oder auch Klassen und records?
Gute frage, und thx dass du sie gestellt hast:
Es geht nur um die einfachsten Datentypen ohne Pointer. Also
String, char, Integer, Boolean

Zitat von xineohp:
moin,

Bastel dir doch einen Parser. (was fertiges kenn ich nicht)

EDIT: Wobei das mit den unterschiedlichen Datentypen ein Problem darstellen könnte
Die Ironie ist : Ich habe ja einen Parser gebaut. siehe hier
Allerdings wäre es dann wirklich "mit Kanonen auf Spatzen geschossen", wobei es kein Problem darstellt, die Formel in ihre Bestandteile zu zerlegen : Also (,),A,=,'tee' usw.


Zitat von Nothine:
naja wieso eigentlich, wenn man die formeln (bzgl. klammersetzung) so auffriemelt das man jeden test auf gleichheit (oder ungleichheit) einzeln hat, müsste man doch im prinzip nur noch linke seite gegen reichte seite machen, das geht auch (oder erstrecht) in strings... stichwort dazu reguläre ausdrücke, damit bringt die formel dann sogar noch richtig was...

aber ma eben in 5 minuten würd ich sowas auch nich proggen
Das Problem besteht auch nicht direkt in der Auswertung der Vergleiche (A = B), sondern in der Klammerung gepaart mit den Operatoren AND , OR und NOT (mehr gibts nicht)

Ich habe ja alle Variablen in einer Liste :
(Pseudocode)
StringList.Objects['A'] = ^record
[Variablenname : String;] (nicht notwendig bei stringlist)
Variablentyp : <enumeration> (typ_integer,t_string usw)
Variableninhalt : String
end;

der inhalt ist immer string, kann aber mit hilfe des angegeben Typs konvertieren.

Zitat von woki:
Hi,

ist vielleicht mit Kanonen auf Spatzen schiessen, aber vielleicht hilft ja:

Free Pascal Script
Thx für den Link. Das scheint ja sehr interessant zu sein.

Tatsache ist, dass ich hier noch etwas nicht erwähnt habe:

Die Operatoren AND, OR, NOT sowie die Vergleichsoperatoren =,<> müssen austauschbar sein durch
"&", "|", "!" sowie "==","!=" und
"==","/="

Das geht wohl am besten, wenn man diese als Konstanten definiert.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat