[R] n Macro
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.
[R] n Macro
Bonjour,
Je cherche à préciser dans un script, plusieurs macro simultanées. Je l'ai déjà fait auparavant, mais plus moyen de retrouver la syntaxe.
EX :
$toto = 'bla bla bla' & @crlf & @crlf & @crlf & @crlf & @crlf & @crlf & @crlf
Je voudrais dans l'exemple ci-dessus, remplacer les n @crlf par un truc du genre {n}@crlf.
Si qqun à l'astuce.
Sinon Joyeuses fêtes à tou(te)s.
Je cherche à préciser dans un script, plusieurs macro simultanées. Je l'ai déjà fait auparavant, mais plus moyen de retrouver la syntaxe.
EX :
$toto = 'bla bla bla' & @crlf & @crlf & @crlf & @crlf & @crlf & @crlf & @crlf
Je voudrais dans l'exemple ci-dessus, remplacer les n @crlf par un truc du genre {n}@crlf.
Si qqun à l'astuce.
Sinon Joyeuses fêtes à tou(te)s.
Modifié en dernier par DimVar le sam. 29 déc. 2018 11:03, modifié 1 fois.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] n Macro
Je ne connais pas de syntaxe particulière pour faire ça, mais on peut utiliser
_StringRepeat
.De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] n Macro
Merci Orax pour cette function.
Je laisse ouvert le sujet néanmoins. Je continue à chercher de mon coté.
Je laisse ouvert le sujet néanmoins. Je continue à chercher de mon coté.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Re: [..] n Macro
Arf, je pense que je confonds avec ce que j'ai deja pu utiliser, à savoir les paramètres de la fonction Send.
Du genre : Send ("{ALT 4}")
Je pensais à tort que l'on pouvait faire un truc du genre {@macro 4}, qui répéterait 4 fois la macro choisie.
Trouveriez-vous cela pratique si cela existait ? Peut on soumettre ça aux développeurs d'Auto-it pour une prochaine version ?
Merci.
Du genre : Send ("{ALT 4}")
Je pensais à tort que l'on pouvait faire un truc du genre {@macro 4}, qui répéterait 4 fois la macro choisie.
Trouveriez-vous cela pratique si cela existait ? Peut on soumettre ça aux développeurs d'Auto-it pour une prochaine version ?
Merci.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
- orax
- Modérateur
- Messages : 1479
- Enregistré le : lun. 23 mars 2009 04:50
- Localisation : ::1
- Status : Hors ligne
Re: [..] n Macro
C'est vrai que parfois c'est pratique. Il y a des langages qui permettent de le faire. Voir la page https://rosettacode.org/wiki/Repeat_a_string à ce sujet. Mais je ne sais pas ce qu'en penseraient les développeurs.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] n Macro
Je crois que c'est très exactement ce qu'en penseraient les développeurs

" 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 )
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: [..] n Macro
Y a ce truc là aussi

Mais attention ! ça tire dans les coins

Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] n Macro
Bonjour.
La solution la plus simple serait de faire comme mikel vous l'a conseillé :
Si le fait d'inclure la librairie String.au3 vous pose problème, vous pouvez simplement rajouter la fonction _StringRepeat() à votre script :
Après, si vous vous moquez de la possibilité de choisir le caractère à répéter et que les tests d'erreurs ne vous concernent pas, vous pouvez épurer le code comme ceci :
ou encore avec une boucle For/Next comme a voulu vous le montrer Walkson :
La solution la plus simple serait de faire comme mikel vous l'a conseillé :
Code : Tout sélectionner
#include <String.au3>
$toto = 'bla bla bla' & _StringRepeat(@CRLF, 7)
Code : Tout sélectionner
$toto = 'bla bla bla' & LocalStringRepeat(@CRLF, 7)
Func LocalStringRepeat($sString, $iRepeatCount)
; Casting Int() takes care of String/Int, Numbers.
$iRepeatCount = Int($iRepeatCount)
If $iRepeatCount = 0 Then Return "" ; Return a blank string if the repeat count is zero.
; Zero is a valid repeat integer.
If StringLen($sString) < 1 Or $iRepeatCount < 0 Then Return SetError(1, 0, "")
Local $sResult = ""
While $iRepeatCount > 1
If BitAND($iRepeatCount, 1) Then $sResult &= $sString
$sString &= $sString
$iRepeatCount = BitShift($iRepeatCount, 1)
WEnd
Return $sString & $sResult
EndFunc ;==>LocalStringRepeat
Code : Tout sélectionner
$toto = 'bla bla bla' & MultiCRLF(7)
Func MultiCRLF($iRepeatCount = 2)
Local $sResult = "", $sString = @CRLF
While $iRepeatCount > 1
If BitAND($iRepeatCount, 1) Then $sResult &= $sString
$sString &= $sString
$iRepeatCount = BitShift($iRepeatCount, 1)
WEnd
Return $sString & $sResult
EndFunc
Code : Tout sélectionner
$toto = 'bla bla bla' & MultiCRLF(7)
Func MultiCRLF($iRepeatCount = 2)
Local $sString
For $i = 1 To $iRepeatCount
$sString &= @CRLF
Next
Return $sString
EndFunc
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é".
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é".