Page 1 sur 1
[R] Utilisation de dièse dans un string
Posté : ven. 03 oct. 2008 14:44
par Axxcat
Bonjour
J'aimerai utiliser un # dans un string que j'envoie dans un _RunDOS.
Il n'apparait pas au finale.
Je n'ai pas trouver de caractère d'échappement comme en C ( ex : \n , \")
Comment je peut faire?
Ma ligne
Code : Tout sélectionner
$rc =_RunDOS("convert -pointsize 20 -fill " & $Coulor & " -draw ""rectangle " & $X0 & "," & $Y0 & "," & $X1 & "," & $Y1 & " "" " & $File & " " & $Result )
J'ai trouver le problème en faisant ça
Code : Tout sélectionner
send("convert -pointsize 20 -fill " & $Coulor & " -draw ""rectangle " & $X0 & "," & $Y0 & "," & $X1 & "," & $Y1 & " "" " & $File & " " & $Result & "{ENTER}")
Je peut faire {#} dans le send mais pas dans le RunDOS
Merci de votre aide
Re: [..] Utilisation de dièse dans un string
Posté : ven. 03 oct. 2008 16:55
par Axxcat
En faite le # ne pose pas de problème avec le _RunDOS mais
_RunDOS retourne 0 même si il marche.
Code : Tout sélectionner
Local $rc
$rc =_RunDOS("convert -pointsize 20 -fill #" & $Coulor & " -draw ""rectangle " & $X0 & "," & $Y0 & "," & $X1 & "," & $Y1 & " "" " & $File & " " & $Result )
If 0 == $rc Then ; Erreure
ConsoleWrite ( "Erreure pendant la convertion" &@CRLF)
EndIf
Re: [..] Utilisation de dièse dans un string
Posté : ven. 03 oct. 2008 18:47
par timmalos
Essaye de remplacer "#" par Chr(23)
Re: [..] Utilisation de dièse dans un string
Posté : ven. 03 oct. 2008 21:01
par Tlem
@Axxcat
Après plusieurs lecture de votre post, je ne vois pas ou vous voulez placer votre # !
De plus, pour rendre plus facile la lecture d'une ligne comme la votre, vous devriez utiliser les simple quote ce qui vous éviterait la manip des doubles-doubles quote ...
Code : Tout sélectionner
$rc =_RunDOS('convert -pointsize 20 -fill ' & $Coulor & ' -draw "rectangle ' & $X0 & ',' & $Y0 & ',' & $X1 & ',' & $Y1 & ' " ' & $File & ' ' & $Result )
Re: [..] Utilisation de dièse dans un string
Posté : sam. 04 oct. 2008 11:07
par Axxcat
Bonjour
Excusez moi je me suis mal exprimé,
Merci pour l'astuce des simple quote.
En faite maintenant ma ligne s'exécute bien mais RunDOS retourne quand même 0. Ce qui n'est pas normal puisque V est sensé retourné 0 qu'en cas d'erreur.
Est il possible de récupérer ce qui est écris sur la console exécuté par RunDOS? (En réponse à ma commande?) Pour voir ce qu'il considère comme erreur.
Merci de votre aide car jetait pas très précis
Re: [..] Utilisation de dièse dans un string
Posté : sam. 04 oct. 2008 11:21
par Tlem
La commande
_RunDos() n'est qu'une simple fonction qui utilise la commande
RunWait().
Extrait du fichier
Process.au3 :
Code : Tout sélectionner
Func _RunDOS($sCommand)
Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
Return SetError(@error, @extended, $nResult)
EndFunc ;==>_RunDOS
Sur ce même principe, vous pourriez utiliser la commande
Run qui elle, permet la récupération du flux STDIN.

Re: [..] Utilisation de dièse dans un string
Posté : lun. 06 oct. 2008 11:56
par Axxcat
Bonjour
Merci des conseils
J'ai essayer d'utiliser la récupération de flux mais j'ai une peut de mal
j'ai fait ça :
Code : Tout sélectionner
Run(@ComSpec & " /c " & $ComChkSum , $WorkDir, @SW_MAXIMIZE, $STDIN_CHILD ) ; don't forget " " before "/c"
Local $read = consoleread ()
Mais ça à pas l'aire d'être ça...
Je n'arrive pas a trouver un tuto sur STDIN en connaissez vous un?
Re: [..] Utilisation de dièse dans un string
Posté : lun. 06 oct. 2008 15:53
par jbnh
Code : Tout sélectionner
$read = Run(@ComSpec & " /c " & $ComChkSum , $WorkDir, @SW_MAXIMIZE, $STDIN_CHILD )
while 1
$line = StdoutRead ($read)
if @error then ExitLoop
MsgBox(0,"stdout read:", $line)
WEnd
Essaye ceci pour récupérer le flux
Re: [..] Utilisation de dièse dans un string
Posté : lun. 06 oct. 2008 16:33
par Axxcat
Merci ça fonctionne niquel
Faut juste que je trouve comment prendre qu'un bout je devrait m'en sortir.