Executer du code texte

Résolu
Signaler
Messages postés
85
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
17 décembre 2005
-
Messages postés
1
Date d'inscription
dimanche 16 mai 2004
Statut
Membre
Dernière intervention
2 mai 2005
-
Est-il possible d'exécuter du texte (sous forme de string) qui, évidemment, représenterait un code Delphi correct? Exemple:
var
Str: string;
i: integer;
begin
Str:= 'i:= 15';
ExecuteTexte(Str);
{Là, la fameuse méthode}
{Et hop, i=15}
end;

Je rêve peut-être, mais une telle méthode existerait-elle?

6 réponses

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Niki2001, Si tu veux executer du texte dans un applicatif, après compilation, ce n'est pas possible directement.

Cependant tu peux toujours te tourner vers des solutions alternatives comme les scripts. Généralement fournit sous forme de librairie DLL, ils permettent d'executer du code (fichier texte, string) après compilation de l'applicatif.

Pour le traitement des scripts en pascal object il existe paxscript (
http://www.paxscript.com/ )
Mais tu peux egalement te tourner vers VBScript, JScript, Perl, Python, TCL/Tk, ....
Bref y'a le choix.

Cordialement.
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

oui tu peux utiliser methodaddress:






procedure TForm1.Button4Click(Sender: TObject);



Var Proc:Function(x,y:Integer):Integer Of Object;



begin



@Proc:=MethodAddress(Edit1.Text);



If @Proc<>Nil Then



ShowMessage(IntToStr(Proc(2,4)));



Else



ShowMessage('Méthode non trouvée !');



end;



trouvé ici :

http://www.developpez.net/forums/viewtopic.php?t=242785&highlight=pointer+fonction
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

a et pour ton truc, il suffit que tu déclares un fonction avec deux
paramètre, la variable, et la valeur a lui assigner, et tu dois pouvoir
te débrouiller.
Messages postés
85
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
17 décembre 2005
1
Oui, mais ce n'est pas du tout ce que je veux. En fait, je ne pense pas que ça existe mais 'i:= 15' n'est qu'un basique exemple. J'aurais pu mettre 'Exit', 'ShellExecute('C:\Programme.exe')', ou n'importe quoi d'autre. L'idée, ce serait que Delphi exécute le texte en question, comme si le programmeur l'avait lui-même écrit.
Messages postés
85
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
17 décembre 2005
1
Merci, WhiteHippo. Je me doutais que ça ne devait pas être possible. Je voulais en être sûr.
Messages postés
1
Date d'inscription
dimanche 16 mai 2004
Statut
Membre
Dernière intervention
2 mai 2005

Si c'est possible. Voir http://www.dream-com.com/scripter.html