Executer du code texte

Résolu
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 - 30 avril 2005 à 11:09
jepab Messages postés 1 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 mai 2005 - 2 mai 2005 à 00:08
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

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
30 avril 2005 à 20:29
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.
3
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
30 avril 2005 à 14:29
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
0
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
30 avril 2005 à 14:30
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.
0
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 1
30 avril 2005 à 20:24
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 1
1 mai 2005 à 09:07
Merci, WhiteHippo. Je me doutais que ça ne devait pas être possible. Je voulais en être sûr.
0
jepab Messages postés 1 Date d'inscription dimanche 16 mai 2004 Statut Membre Dernière intervention 2 mai 2005
2 mai 2005 à 00:08
Si c'est possible. Voir http://www.dream-com.com/scripter.html
0
Rejoignez-nous