AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi IF THEN Konstrukte dynamisch erstellen.
Thema durchsuchen
Ansicht
Themen-Optionen

IF THEN Konstrukte dynamisch erstellen.

Ein Thema von Go2EITS · begonnen am 9. Okt 2007 · letzter Beitrag vom 9. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#1

IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 11:21
Ich habe wieder ein Problem, dass ich mal zur Diskussion stelle:

Ich möchte neue If bedingungen vom Programm einfügen lassen.
Bisher ist mir nur eingefallen, die If-Bedingungen als Include-Datei zu erstellen und den Compiler aufzurufen,
damit die neuen If-Bedingungen akzeptiert werden. Kann ich irgendwie diese dynamisch erstellen?
Hat jemand schon mal einen Ansatz dazu? Sollte ich P-Code erstellen oder eine Scriptsprache?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 11:23
Wie meinst du das mit dynamisch? Bedingte Kompilierung?
Markus Kinzler
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#3

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 11:33
Nein, keine bedingte Kompilierung.
If Temperatur >20 then MarkieseOut;

Ergänzung, die im Programm aufgenommen werden sollen.
If Temperatur >20 and Sonnenschein then MarkieseOut;
If Innentemperatur >22 and Sonnenschein then MarkieseOut;

Diese Ifs werden durch einen "Zufallsgenerator" generiert.
Natürlich können Bedingungen/Muster "zufällig" z. B. aus einem Array gepickt werden:
if(Array[1,10])>0 and (Array[1,234] =Montag) and (Array[1,534]<>0) then Fehler;

Soweit verstanden?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 11:35
Dann wäre eine Skript-Komponente vielleicht sinnvoll (z.B. PascalScript)
Markus Kinzler
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#5

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 11:47
Naja, dass wäre eine Lösung, wie schon in meinem ersten Beitrag geschreiben.

Mir fällt ein, ich hatte vor Jahren eine Lösung, die wenn ich mich richtig entsinne mit Mengen gelöst habe.
Ich habe eine Menge generiert, diese ausgelesen und interpretiert. Bin aber mangels Programmierkenntnisse nicht weit gekommen.
Aber der String oder die Menge sah so oder s.ä. aus:
Befehle:=''IF','THEN','<','>','<>','=','AND','NOT' ,'OR','(',')';
Und irgendwie hatte ich auch die Regeln implementiert.

Gäbe es nicht eine andere Lösung außer die mit Pascalscript?
Lisp in Delphi vielleicht?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 12:52
sowas geht einfach mit Programmierlogic
Delphi-Quellcode:
If (Temperatur > 20) and
  (not(Beruecksichtige_Sonnenschein) or Sonnenschein) then
begin
 MarkieseOut;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#7

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 13:04
Das Gummibärchen hat folgendes geschrieben:
sowas geht einfach mit Programmierlogic


Das setzt aber eine feste Programierung und oder Bedingung vorraus. Im nachhinein gibt es dann keine
Möglichkeit das Programm anders entscheiden zu lassen wenn eine Bedingung hinzu kommt oder sich verringert.
Man muss also über ein externes, nicht fest in das Programm eingebunde Script arbeiten, will man es flexibel halten zB. für den Kundensupport.

PascalScript wäre also eine gute Lösung wenn man sich nicht selbst etwas basteln will.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 13:10
Das stimmt, man kann im Nachhinein nichts hinzu fügen. Aber auch bei verwendung von Scripts geht das nicht wenn diese Verbindung zum richtigen Programm haben sollen. Wenn das Script zum Beispiel Werte von richtigen Variablen aus dem Programm verwenden soll muss man das auch vorher festlegen da die Variablen später (nach dem compiliere) nicht mehr mit Namen angesprochen werden können.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#9

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 13:14
Vielleicht wäre hier auch ein System interessant wie die, die z.B. in den Editoren von StarCraft und WarCraft III Verwendung fanden, oder in Outlook im Regeleditor, oder auch in vielen neueren Mediaplayern (z.B. WMP) beim Erstellen intelligenter Wiedergabelisten. Dabei sind die durchführbaren Aktionen und die möglichen Bedingungen vom Programm vorgegeben, aber der Benutzer kann sie beliebig kombinieren und konfigurieren.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#10

Re: IF THEN Konstrukte dynamisch erstellen.

  Alt 9. Okt 2007, 13:29
@SirThornberry
Es geht darum, neue If-Then Schleifen dynamisch hinzuzufügen, nicht wie sie geschrieben werden. Das wäre ein anderes Thema.
Diese If-Then Schleifen sollen dann auch noch gespeichert werden.
Die Lösung scheint schwierig zu sein und nur über ein Plugin oder Script zu bewältigen.

Letztendlich ist es ein Programm, das Regeln per Zufall erstellt, diese im Programm einfügt und prüft und kommt ein brauchbares Ergebnis raus, auch speichern diese soll. Die neuen Daten/Inputs werden dann von den neuen, generierten If-Then Bedingungen im Aktionsmodus geprüft. Das Programm ist ein wenig komplex und bevor ich Zeit investiere, möchte ich die Frage der If-Bedingungen bzw. dynamischen Regeln zuerst lösen.

Rote Fenster
@OregonGhost
Lua wird bei Warcraft eingesetzt. Das Programm generiert hunderttausende If-Statements, die um die Wette, bez. das beste Ergebnis eifern. Da wird manuelles Verknüpfen nicht vorgesehen sein.

LUA, Fastscript und ScriptPascal habe ich mir schon runtergeladen. Aber ich wollte mich nicht neu einlernen, damit ich 20 Zeilen If-Statesments in mein Programm während er Laufzeit einfüge. Die schnellste Version erscheint mir die Generation der If-Statements als Include Datei und den Source neu zu compilieren zulassen. Ich denke, nun wird mein Anliegen klarer.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 09:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz