Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi String in Befehl umwandeln (https://www.delphipraxis.net/20523-string-befehl-umwandeln.html)

fauxx 19. Apr 2004 14:58


String in Befehl umwandeln
 
Hallo!

Ich hab mal eine Frage:
Gibt es eine Möglichkeit einen String in einen Befehl umzuwandeln?

Bitte um eine Antwort
Danke im Vorraus

moritz 19. Apr 2004 15:02

Re: String in Befehl umwandeln
 
Hallo

Eine Prozedur, der du den Befehl als String übergibtst und die den dann mit switch auswertet?

Schönen Gruß

cBoB 19. Apr 2004 15:09

Re: String in Befehl umwandeln
 
Würde mich auch mal interessieren.
So in der Art wie: Ich bau mir den Namen einer Instanz aus Strings zusammen und kann an diesen denn mit Punkt getrennt den Namen einer Methode drann hängen und damit dann weiterarbeiten.
Also angelehnt vielleicht an die php-Funktion "eval()"

Gruß
-c-

moritz 19. Apr 2004 15:12

Re: String in Befehl umwandeln
 
Hallo

Das habe ich in Delphi auch schon gesucht, gibt es aber nicht :|
Muss man selber einen Interpreter schreiben.

Schönen Gruß :hi:

P.S.: Falls das jetzt wer vorhat: Reguläre Ausdrücke sind da recht nützlich :-D

fauxx 19. Apr 2004 15:15

Re: String in Befehl umwandeln
 
Wow, da bekommt man extremst schnell Antworten!!

Gibts sowas in irgend einer Programmiersprache??

Leuselator 19. Apr 2004 15:22

Re: String in Befehl umwandeln
 
Das geht so ohne weiteres nur in interpretierten Sprachen und nennt sich dort dann z.B. Makrosubstitution eine Interpretersprache die das unterstützt un mir auf Anhieb einfällt ist z.B. FoxPro von MS.

Allerdings ist es IMHO nicht notwendig, mit solchen Konstrukten zu arbeiten - als ich von FoxPro/Clipper auf Delphi umstieg, habe ich das anfänglich schon vermisst - heute fällt mir nichtmal mehr ein, wofür ich das überhaupt benötigen würde...

Gruß

cBoB 19. Apr 2004 15:36

Re: String in Befehl umwandeln
 
@Leuselator:

Na wie gesagt, mir würde da spontan einfallen, dynamisch erzeugte Komponenten über den Namen mit einer Laufvariablen anzusprechen. Aber wie gesagt, bin erst vor kurzem zu Delphi gekommen und damit sind mir natürlich kaum Möglichkeiten bekannt, auf irgendeine Art auf zur Laufzeit erzeugte Komponenten zuzugreifen. - ZUVIEL INPUT! :wall:
Und eine weitere Interpretersprache ist in dem Fall wie oben bereits erwähnt PHP mit der Funktion "eval()"

-c-

himitsu 19. Apr 2004 15:38

Re: String in Befehl umwandeln
 
Bei JavaScript ist auch sowas möglich ^^

fauxx 19. Apr 2004 15:41

Re: String in Befehl umwandeln
 
Weiß einer von euch, wie man JavaScript oder PHP in Delphi einbinden kann, denn mit DLLs kann man da wohl kaum arbeiten... :?

maximov 19. Apr 2004 16:21

Re: String in Befehl umwandeln
 
hi.

Für meine runtime-object-inspector hab ich das mit den class funktionen...

Delphi-Quellcode:
class function TObject.MethodAddress(const Name: ShortString): Pointer;
// und
class function TObject.MethodName(Address: Pointer): ShortString;
...gelöst. Allerdings hat man immer problem mit den parametern, da darüber keine information vorliegen :( ...und es funkt nur mit published methoden.

Leuselator 19. Apr 2004 16:28

Re: String in Befehl umwandeln
 
@CBOB:
Delphi-Quellcode:
type
var ObjektListe : TList;
    i          : Integer;
begin
  ObjektListe := TList.Create;
  // Objekte der Liste hinzufügen:
  for i := 0 to 19 do ObjektListe.Add(TEdit.Create(nil));

  // 15. Objekt aus Liste ansprechen:
  TEdit(ObjektListe[15]).Text := 'Hier bin ich!';

  // Objekte freigeben:
  for i := 0 to 19 do FreeAndNil(TEdit(ObjektListe[i]));

  //Liste freigeben:
  FreeAndNil(ObjektListe);
end;
Gruß

maximov 19. Apr 2004 16:55

Re: String in Befehl umwandeln
 
@Leuselator: Thema verfehlt..setzen :mrgreen:

moritz 19. Apr 2004 16:57

Re: String in Befehl umwandeln
 
Hallo

Als JS oder PHP in Delphi einbinden wird ein Ding der unmöglichkeit. Klar könntest du Javascript in nem TWebbrowser ausführen, aber das hilft dir dafür nicht viel weiter. Was willst udenn damit machen?

Schönen Gruß :hi:

fauxx 19. Apr 2004 17:02

Re: String in Befehl umwandeln
 
Ok, vielleicht wäre eine Beschreibung von meinem Problem besser, als nur ein Bruchteil davon:

Ich will ein Programm schreiben, das Mathematische Schaltungen (and, or, xor, not, etc.) lösen kann. Nur wie kann ich das machen, dass
1. Beliebig viele Variablen (zumindest max 10 oder so) verwendet werden können
2. Die Operatoren (eben and, or, xor, not, etc.) beliebig gesetzt werden können?

Ich dachte eben, dass man in einer TListBox auswählt, ob man and oder or will und das dann in die Prozedur eingesetzt wird.

Falls jetzt keiner versteht was ich meine:
Ein Programm dass das z.B. Lösen kann:

Code:
(a and b) and (c or a) or (not a)
Alles klar? :wink:

cBoB 19. Apr 2004 17:03

Re: String in Befehl umwandeln
 
@Leuselator:

Hm... Das liest sich erstmal nicht schlecht. Damit könnte ich vielleicht ansatzweise etwas anfangen.
Danke erstmal und noch einen angenehmen Feierabend!

-c-

moritz 19. Apr 2004 17:17

Re: String in Befehl umwandeln
 
Hallo

Da wird dir nix anderes überrigbleiben als einen Parser zu schreiben, eine StrToBool - Funktion gibt es zwar, aber die macht nicht das. Also Parser schreiben ^^

Schönen Gruß :hi:

fkerber 19. Apr 2004 19:37

Re: String in Befehl umwandeln
 
Hi!

Es gibt doch schon diverse Parser. Ist da sowas nicht dabei?

Ciao fkerber

fauxx 19. Apr 2004 19:43

Re: String in Befehl umwandeln
 
Dumme (sehr sehr sehr dumme) Frage:

Was isn' n Parser???

cBoB 19. Apr 2004 20:37

Re: String in Befehl umwandeln
 
Also ein Parser analysiert z.B. Deinen Quellcode und bereitet den anschließend für den Kompiler auf, d.h., er "liest" sich Zeile für Zeile Deinen Code durch, schaut was Du von ihm willst und gibt ggf. einen Fehler raus, wenn Deine Syntax nicht richtig war.
Auf Dein Problem übertragen heißt das, daß Du auch ein kleienes Progrämmchen schreiben mußt, was den eingegebenen String analysiert und dann die entsprechenden Programmteile ausführt. Aber ich sag Dir gleich: Was Stringoperationen in Delphi angeht, hab ich zwar auch noch wenige Erfahrungen gesammelt, aber das, was ich gesehen hab war schrecklich im Vergleich zu z.B. PHP.

Schönen Abend noch
-c-

fauxx 19. Apr 2004 20:40

Re: String in Befehl umwandeln
 
DANKE

Jörn 19. Apr 2004 20:42

Re: String in Befehl umwandeln
 
Also einen Interpreter mit Pascal-Syntax gibt es bei den JEDIs. Ich weiss aber nicht ob der geeignet ist!

dizzy 19. Apr 2004 20:45

Re: String in Befehl umwandeln
 
Diesen mathematischen, und verhältnismäßig einfachen Parser hab ich mir just heute funktionierend für Berechnungen mit komplexen Zahlen umgebaut. Für deine Wünsche dürfte der genau richtig sein! (Mit entsprechenden Umbauten versteht sich.)

mfg,
dizzy

fauxx 19. Apr 2004 20:48

Re: String in Befehl umwandeln
 
Wow, danke...

dizzy 19. Apr 2004 20:51

Re: String in Befehl umwandeln
 
Gerne das!

Aber achtung: Der Code ist grausig formatiert... Ich bin als aller erstes mal ganz durchgegangen und hab das Teil weitestgehend an den Borland-Styleguide angepasst. Dann versteht man auch mehr :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 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