[R] Execute("string") sur plusieurs ligne.
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- XenaMelody
- Niveau 4

- Messages : 67
- Enregistré le : mar. 25 oct. 2011 00:45
- Status : Hors ligne
[R] Execute("string") sur plusieurs ligne.
Bonsoir !
En avançant sur mon projet, je me confronte à un problème avec Execute. Comment faire pour qu'Execute("string") puisse exécuter plusieurs ligne ? ( Je ne peux pas utiliser "string" & @CRLF & _ car le string est un script AutoIt se trouve dans un EditBox et j'utilise GUICtrlRead($Edit) dans Execute() ).
En avançant sur mon projet, je me confronte à un problème avec Execute. Comment faire pour qu'Execute("string") puisse exécuter plusieurs ligne ? ( Je ne peux pas utiliser "string" & @CRLF & _ car le string est un script AutoIt se trouve dans un EditBox et j'utilise GUICtrlRead($Edit) dans Execute() ).
Modifié en dernier par XenaMelody le mer. 26 oct. 2011 23:06, modifié 1 fois.
XenaMelody
L'esprit sert à tout, mais il ne mène à rien.
Talleyrand
Talleyrand
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Execute("string") sur plusieurs ligne.
Et pourquoi pas passer par un fichier temp ?XenaMelody a écrit : le string est un script AutoIt se trouve dans un EditBox
GUICtrlRead($Edit) => @tempdir & "\script.au3" => ShellExecute(@tempdir & "\script.au3")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- XenaMelody
- Niveau 4

- Messages : 67
- Enregistré le : mar. 25 oct. 2011 00:45
- Status : Hors ligne
Re: [..] Execute("string") sur plusieurs ligne.
Parce que je n'ai pas envie de passer par un autre script
.
Mais je pense que j'ai trouvé. Il me suffi de convertir le string en tableau ASCII, de trouver la décimale du retour à la ligne, soit 10, de le supprimer, de reconvertir ce tableau en string et de lancer cette derniere avec Execute()
!
Si sa marche, je passe se post en résolut, mais d'abord je dois aller manger, bonne appétit
!
Mais je pense que j'ai trouvé. Il me suffi de convertir le string en tableau ASCII, de trouver la décimale du retour à la ligne, soit 10, de le supprimer, de reconvertir ce tableau en string et de lancer cette derniere avec Execute()
Si sa marche, je passe se post en résolut, mais d'abord je dois aller manger, bonne appétit
XenaMelody
L'esprit sert à tout, mais il ne mène à rien.
Talleyrand
Talleyrand
- matwachich
- Membre émérite

- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [..] Execute("string") sur plusieurs ligne.
Pourquoi faire simple quand on peut faire compliqué!
Code : Tout sélectionner
$commande = StringSplit($commande, @CRLF, 1)
For $i = 1 To $commande[0]
Execute($commande[$i])
NextSortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Execute("string") sur plusieurs ligne.
@matawachich : Je doute que cela fonctionne avec un script "un peu" élaboré (avec des if, des for, etc)
Sinon (Mais vous passez par un 2eme processus) :
Sinon (Mais vous passez par un 2eme processus) :
Code : Tout sélectionner
ExecuteMultiLine("Votre script multiligne ici")
Sleep(1000)
Func ExecuteMultiLine($Script)
Local $TempFile = @TempDir & "\temp.au3"
Local $File = FileOpen($TempFile, 2)
FileWrite($File, $Script)
FileClose($File)
ToolTip(@AutoItExe)
Run(@AutoItExe & " /AutoIt3ExecuteScript " & $TempFile)
EndFunc3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- XenaMelody
- Niveau 4

- Messages : 67
- Enregistré le : mar. 25 oct. 2011 00:45
- Status : Hors ligne
Re: [..] Execute("string") sur plusieurs ligne.
@matwachich
@TommyDDR
Tu as raison, mon astuce avec la méthode ASCII ne fonctionne qu'avec des lignes très simple du genre MsgBox. Le script suivant par contre ne marche pas :
Edit :
Et puis, je pense que créer un nouveau fichier est une bien meilleur solution après réflexion. Si ce script contient une boucle, cela va suspendre mon script principale, et de toute façon je n'ai pas le choix vu que ça ne marche pas
.
C'est pas plutôt : Pourquoi faire compliqué quand on peut faire simple ?matwachich a écrit :Pourquoi faire simple quand on peut faire compliqué!
@TommyDDR
Tu as raison, mon astuce avec la méthode ASCII ne fonctionne qu'avec des lignes très simple du genre MsgBox. Le script suivant par contre ne marche pas :
Code : Tout sélectionner
$test = 1
If $test = 1 Then
MsgBox(0, "test", $test)
Else
MsgBox(0, "test", "Something wrong")
EndIfEt puis, je pense que créer un nouveau fichier est une bien meilleur solution après réflexion. Si ce script contient une boucle, cela va suspendre mon script principale, et de toute façon je n'ai pas le choix vu que ça ne marche pas
Modifié en dernier par XenaMelody le mer. 26 oct. 2011 23:05, modifié 1 fois.
XenaMelody
L'esprit sert à tout, mais il ne mène à rien.
Talleyrand
Talleyrand
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Execute("string") sur plusieurs ligne.
Avez vous essayé ma fonction ?
Si oui : Vous convient elle ?
Si oui : -> Résolu ^^'
Si oui : Vous convient elle ?
Si oui : -> Résolu ^^'
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- XenaMelody
- Niveau 4

- Messages : 67
- Enregistré le : mar. 25 oct. 2011 00:45
- Status : Hors ligne
Re: [..] Execute("string") sur plusieurs ligne.
Merci pour vos réponse, je mets en résolut !
XenaMelody
L'esprit sert à tout, mais il ne mène à rien.
Talleyrand
Talleyrand
