[R] Utilisation de dièse dans un string

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

[R] Utilisation de dièse dans un string

#1

Message 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
Modifié en dernier par Tlem le mar. 07 oct. 2008 22:33, modifié 2 fois.
Raison : Balises
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#2

Message 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
 
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#3

Message par timmalos »

Essaye de remplacer "#" par Chr(23)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#4

Message 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 )
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#5

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#6

Message 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. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#7

Message 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?
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#8

Message 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
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Axxcat
Niveau 2
Niveau 2
Messages : 15
Enregistré le : jeu. 02 oct. 2008 16:44
Status : Hors ligne

Re: [..] Utilisation de dièse dans un string

#9

Message par Axxcat »

Merci ça fonctionne niquel
Faut juste que je trouve comment prendre qu'un bout je devrait m'en sortir.
Répondre