![]() |
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 |
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ß |
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- |
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 |
Re: String in Befehl umwandeln
Wow, da bekommt man extremst schnell Antworten!!
Gibts sowas in irgend einer Programmiersprache?? |
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ß |
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- |
Re: String in Befehl umwandeln
Bei JavaScript ist auch sowas möglich ^^
|
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... :?
|
Re: String in Befehl umwandeln
hi.
Für meine runtime-object-inspector hab ich das mit den class funktionen...
Delphi-Quellcode:
...gelöst. Allerdings hat man immer problem mit den parametern, da darüber keine information vorliegen :( ...und es funkt nur mit published methoden.
class function TObject.MethodAddress(const Name: ShortString): Pointer;
// und class function TObject.MethodName(Address: Pointer): ShortString; |
Re: String in Befehl umwandeln
@CBOB:
Delphi-Quellcode:
Gruß
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; |
Re: String in Befehl umwandeln
@Leuselator: Thema verfehlt..setzen :mrgreen:
|
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: |
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:
Alles klar? :wink:
(a and b) and (c or a) or (not a)
|
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- |
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: |
Re: String in Befehl umwandeln
Hi!
Es gibt doch schon diverse Parser. Ist da sowas nicht dabei? Ciao fkerber |
Re: String in Befehl umwandeln
Dumme (sehr sehr sehr dumme) Frage:
Was isn' n Parser??? |
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- |
Re: String in Befehl umwandeln
DANKE
|
Re: String in Befehl umwandeln
Also einen Interpreter mit Pascal-Syntax gibt es bei den
![]() |
Re: String in Befehl umwandeln
![]() mfg, dizzy |
Re: String in Befehl umwandeln
Wow, danke...
|
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