Page 1 sur 1

[Ex] Texte en variable autoit

Posté : lun. 20 déc. 2010 07:15
par bloodwolff
On a parfois besoin d'utiliser un texte directement dans les codes autoit
Le problème c'est qu'on doit tout se taper manuellement
C'est assez C*n de faire un programme qui automatise des actions si on se tape tout manuellement
Le mini-programme offre la possibilité de choisir le nom de la variable
Si je n'ai pas été assez clair je vous montre un exemple

si on lui donne le texte
***** Important *****
- Ajoutez la balise [..] dans le titre de votre premier message
- N'oubliez pas les balises de code dans vos messages.

Plus de détails ici :
http://www.autoitscript.fr/forum/viewto ... f=35&t=595
En
$Texte = '***** Important *****' & @crlf
$Texte &= '- Ajoutez la balise [..] dans le titre de votre premier message' & @crlf
$Texte &= '- N''oubliez pas les balises de code dans vos messages.' & @crlf
$Texte &= 'Plus de détails ici :' & @crlf
$Texte &= 'http://www.autoitscript.fr/forum/viewto ... f=35&t=595'
Voici le script

Code : Tout sélectionner

$Form = GUICreate("Texte en $Autoit", 460, 340, 250, 150)
$Edit = GUICtrlCreateEdit("", 8, 34, 441, 271)
$Transformer = GUICtrlCreateButton("Transformer", 8, 312, 211, 25)
$Input = GUICtrlCreateInput("", 120, 8, 177, 21)
$Copier = GUICtrlCreateButton("Copier et vider", 232, 312, 219, 25)
$Label1 = GUICtrlCreateLabel("Nom de variable ? ==>", 8, 8, 111, 17)
$Radio1 = GUICtrlCreateRadio('Forme && "ligne" _', 304, 16, 113, 17)
$Radio2 = GUICtrlCreateRadio('Forme $variable &&= "ligne"', 304, 0, 145, 17)
GUICtrlSetState(-1, 1)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Copier
            ClipPut(GUICtrlRead($Edit))
            GUICtrlSetData($Edit, "")
            GUICtrlSetState($Transformer, 64)
        Case $Transformer
            $texte = GUICtrlRead($Edit)
            If $texte <> "" Then
                $Variable = GUICtrlRead($Input)
                If $Variable = "" Then $Variable = "Texte"
                If StringLeft($Variable, 1) = "$" Then $Variable = StringTrimLeft($Variable, 1)
                $texte = StringReplace($texte, "'", "''")
                If GUICtrlRead($Radio2) = 1 Then
                    $texte = StringRegExpReplace($texte, "([^\n\r]+){1}?(?:\n|\r)*", "$" & $Variable & " &= '$1' & @crlf" & @CRLF)
                    $texte = StringReplace($texte, "&=" , "=", 1)
                    $texte = StringReplace($texte, " & @crlf", "", -1)
                ElseIf GUICtrlRead($Radio1) = 1 Then
                    $texte = StringRegExpReplace($texte, "([^\n\r]+){1}?(?:\n|\r)*", StringRegExpReplace($Variable,"(.)","  ") & "  & '$1' & @crlf _" & @CRLF)
                    $texte = StringReplace($texte, StringRegExpReplace($Variable,"(.)","  ") & "  & '" , "$" & $variable & " = '", 1)
                    $texte = StringReplace($texte, " & @crlf _", "", -1)
                EndIf
                GUICtrlSetData($Edit, $texte)
                GUICtrlSetState($Transformer, 128)
            EndIf
        Case -3
            Exit
    EndSwitch
WEnd

Re: [Ex] Texte en variable autoit

Posté : lun. 20 déc. 2010 07:57
par softwater
Hello,
Super l'idée. Par contre le retour de chariot est conservé lors de la transformation, en tous cas chez moi.
Ce qui fait que lors de la copie dans SciTE j'ai ce résultat:

Code : Tout sélectionner

$var = 'J''aime
' & @crlf
$var &= 'le
' & @crlf
$var &= 'chocolat' 
Autrement il serait bien de positionner le curseur dans le champ de la variable au lancement et d'ajouter un bouton pour tout vider :D

Re: [Ex] Texte en variable autoit

Posté : lun. 20 déc. 2010 17:13
par bloodwolff
Oui , merci pour les commentaires je regarde sa !

Re: [Ex] Texte en variable autoit

Posté : lun. 20 déc. 2010 17:37
par bloodwolff
Voilà sa devrais être corrigé , le bouton copier vide maintenant automatiquement le champ !

Re: [Ex] Texte en variable autoit

Posté : mar. 21 déc. 2010 11:06
par softwater
super, ça marche
si j'ai un moment j'y intègrerai quelques options supplémentaires

Re: [Ex] Texte en variable autoit

Posté : mar. 21 déc. 2010 11:21
par Iste
Il me semblerait plus propre de casser les ligne au lieu de concaténer chacune :

Code : Tout sélectionner

$Texte = '***** Important *****' & @crlf _
        &'- Ajoutez la balise [..] dans le titre de votre premier message' & @crlf _
        & '- N''oubliez pas les balises de code dans vos messages.' & @crlf _
        & 'Plus de détails ici :' & @crlf _
        & 'http://www.autoitscript.fr/forum/viewtopic.php?f=35&t=595'

Re: [Ex] Texte en variable autoit

Posté : mar. 21 déc. 2010 17:16
par bloodwolff
Sa dépend des points de vus , au pire je mettrai les 2 possibilités

Re: [Ex] Texte en variable autoit

Posté : jeu. 23 déc. 2010 09:31
par DimVar
Bonjour,

Merci pour ce précieux outils. Je vais de suite l'ajouter dans ma trousse.
J'ai fait un test pour de l'emailing, dans lequel j'ai saisi :
"Bien à vous."

Le code retourné etait le suivant :
$toto = 'Bien ' & @crlf
à$toto &= ' vous.'

D'autre part, si l'on clique 2 fois sur transformer, il transforme deux fois. Logique, mais peux t'on bloquer la transformation à une seule fois ? Eviter ainsi des maladresses...

Re: [Ex] Texte en variable autoit

Posté : jeu. 23 déc. 2010 17:38
par bloodwolff
Oui c'est possible ! Je règle sa aujourd'hui normalement

Re: [Ex] Texte en variable autoit

Posté : jeu. 23 déc. 2010 19:40
par bloodwolff
Voilà j'ai pris en compte vos commentaires (regarder le premier post)mais ya un truc sur lequel je bloque !
Je ne suis pas capable d'insérer "&" dans mon label
J'ai tester Chr(38) et Chrw(38) mais cela ne fonctionne pas :(

Corrigé grâce à Coucou Jérome
Il suffit de doubler le &