Page 1 sur 1

[..] Lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 14:42
par xdavidx
Bonjour,
J'aimerai bien lire une zone de texte dans une fenêtre et les recopier en inversant les lettres et chiffres; je m'explique
j'ai cette combinaison : 76E8910A12 , je dois avoir au final la première lettre + la dernière ainsi de suite ... [ 7261EA8091 ] et recopier mon résultat dans une autre zone de saisie.
Merci a vous.

Re: [..]lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 15:12
par TommyDDR
Pour la lecture de texte vous avez moultes sujet qui en parlent.
Renverser les lettre d'une chaine de caractère, vous avez la réponse dans l'aide AutoIt, appuyez sur F1 et cherchez s'il vous plait.

Re: [..]lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 15:32
par jguinch
Un truc comme ça ?
► Afficher le texte
Edit:
Mais bien sûr, comme dit Tommy, il faut éplucher la doc et essayer de comprendre comment procéder.
Dans mon cas, j'utilise une boucle qui va de 1 jusqu'à 5 (la moitié de la longueur de la chaîne). J'extrais ensuite les lettre 1 et 10, puis 2 et 9..

Re: [..]lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 17:39
par mikell
Et si la longueur est un chiffre impair ? Image

Code : Tout sélectionner

$sString = "76E89510A12"
$sStringOut = ""

$tmp = $sString
While $tmp <> ""
    $sStringOut &= StringLeft($tmp, 1) & ((StringLen($tmp) = 1) ? "" : StringRight($tmp, 1))
    $tmp = StringTrimLeft(StringTrimRight($tmp, 1), 1)
Wend
MsgBox(0, "", $sString & " => =" & $sStringOut & "=")
 
@Tommy
Vu le bug de jguinch le bazar n'était pas d'une évidence folle ^^

Re: [..] Lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 17:51
par jguinch
[mauvaise foi=ON]mikell, de quel bug tu parles ? :mrgreen:[mauvaise foi=OFF]
A vrai dire, j'y avais pensé...

Re: [..] Lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 18:33
par mikell
Mais de celui-là évidemment
Avant d'éditer son post en douce, jguinch a écrit :

Code : Tout sélectionner

$sString = "76E89510A12"
$sStringOut = ""

For $i = 1 To StringLen($sString) / 2
    $sStringOut &= StringMid($sString, $i, 1) & StringMid($sString, StringLen($sString) - $i + 1, 1)
Next
MsgBox(0, "", $sString & " => " & $sStringOut)
:mrgreen:

Re: [..] Lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 21:51
par Tlem
Bonsoir.
Comme sur ce forum la pratique n'est pas encore courante, je me permet juste de préciser que dans le code de mikell, il est fait usage de l'opérateur ternaire.

pour plus d'explications, c'est par ici : http://www.autoitscript.fr/wiki/Operateur_Ternaire

Re: [..] Lire une zone de texte et inverser les lettres

Posté : dim. 24 août 2014 23:11
par mikell
Exact Thierry, désolé j'ai oublié de préciser : Autoit 3.3.12.0+ (la dernière release) :oops: