calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 décembre 2008
-
5 nov. 2008 à 20:57
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 2018
-
19 nov. 2008 à 01:58
Bonjour,
Je cherche a exécuter un string. J'ai essayé via Microsoft Script Control 1.0, seulement lorsque j'essaye d'appeler un sub ou une fonction de mon projet, le programme plante. Il m'est possible d'executer une msgbox, ou encore un calcul, mais impossible de faire un call, ou d'executer une fonction.
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 6 nov. 2008 à 14:48
Pour compiler du code vb.net "à la volée" sa ne fonctionne pas comme cela. Il faut passer par le mécanisme CodeDom !
Exemple ici en C# mais tu pourras mieux visualiser le mécanisme http://vincentlaine.developpez.com/tuto/dotnet/codedom/
Ou alors je n'ai pas bien saisie ta demande et ce que tu souhaites et simplement l'execution d'un fichier de script vbs ?
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 13 nov. 2008 à 13:01
Bonjour,
ah ben faudrait savoir calimero63110 "je souhaite juste executer un fichier script vbs :)"
"Je cherche a ouvrir un fichier contenant des lignes de code VB.Net et à les exécuter, comme si elles étaient écrite dans le code source du programme"
ce sont 2 choses totalement différentes et en plus Willi t'a donné les 2 solutions
calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 décembre 2008 5 nov. 2008 à 22:31
J'avais fait comme ça :
Dim sC As New MSScriptControl.ScriptControl
Dim ligne As String
Dim Fichier As String
Fichier = vbNullString
sC.Language = "VBScript"
Dim monStreamReader As StreamReader = New StreamReader(Application.StartupPath & "\Spells\Spell1\Cast.txt")
'Lecture de toutes les lignes et affichage de chacune sur la page
sC.AddObject("index", Index)'Ici c'est pour envoyer une variable au lecteur de code en l'occurence la variable index, qui sera aussi appelé index dans le code
Do
ligne = monStreamReader.ReadLine()
Fichier = Fichier & vbCrLf & ligne
Loop Until ligne Is Nothing
sC.ExecuteStatement(Fichier)
'Fermeture du StreamReader (attention très important)
monStreamReader.Close()
Quand dans le fichier texte, je met un Call SendStats par exemple, et bien le sub sendstats du projet n'est pas executé.
Vous n’avez pas trouvé la réponse que vous recherchez ?
calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 décembre 2008 13 nov. 2008 à 12:48
Je ne cherche pas a exécuter un fichier ou un programme présent sur le disque dur. Je cherche a ouvrir un fichier contenant des lignes de code VB.Net et à les exécuter, comme si elles étaient écrite dans le code source du programme.
calimero63110
Messages postés33Date d'inscriptionsamedi 26 mars 2005StatutMembreDernière intervention14 décembre 2008 13 nov. 2008 à 18:51
Ah et bien désolé :) j'avais mal compris la question :x
Autant pour moi, et merci à vous tous, en espérant que CodeDOM ira :)
Prend-il en compte les variables globales et les fonctions déclarés dans le projet ?
Peut on par exemple, executer un Call Function() avec CodeDOM, si "function" est une fonction globale déclarée dans le projet ?