Page 1 of 1

METTRE DES TABULATIONS DANS UNE SERIES DE NOMBRES

Posted: 06 Nov 2019, 16:52
by alexooo
Bonsoir,
Après bon nombre de recherches, je ne parviens pas a trouver la solution,

Mon but est d'inscrire 25 chiffres et de les séparer par des tabulations entre eux a des endroit spécifique.

Exemple: Je saisi : 012345678910123456789
Et je veux que la sortie quand j'appuie sur F1 cela sort comme suit : 01 {TAB} 2345678910 {TAB} 12345678911{TAB} 12

Je ne sais pas quelle expression utiliser pour le formatage : Setformat ? RegExReplace? Merci par avance!

Voici mon script :

Code: Select all

Gui Add, Edit,	x76 y88 w200 h20 	vREF2	
Gui Show, x1172 y20 w260 h229, TEST
Return	

F1::
GuiControlGet, REF2
Sendinput, %REF2%,, "xx%A_Tab%xxxxxxx%A_Tab%XX"
return

Re: METTRE DES TABULATIONS DANS UNE SERIES DE NOMBRES

Posted: 06 Nov 2019, 18:21
by joedf
Essayez le suivant?

Code: Select all

Gui Add, Edit, w200 vREF2
Gui Add, Button, gOk, Okay
Gui Show, , TEST
Return

GuiClose:
ExitApp

F1::
Ok:
gosub changeInput
return

changeInput:
GuiControlGet,theString,, REF2
newString := SubStr(theString,1,2) . "`t" . SubStr(theString,3,-2) . "`t" . SubStr(theString,-1)
GuiControl,, REF2, % newString
return

Re: METTRE DES TABULATIONS DANS UNE SERIES DE NOMBRES

Posted: 07 Nov 2019, 12:36
by alexooo
Super !!! Une solution en proche du but !

Alors je l'ai mofdifié un peu étant donné que je veux que le champs soit saisie ensuite et cela fonctionne

Par contre, je n'obtiens pas le resultat voulu pour 25 chiffres.

Ils doivent ce décomposer de la façon suivante : 11{TAB]2222222222{TAB]33333333333{TAB]44

De plus quand je rejoue la macro la tabulations s'agrandi alors que la casse doit toujours être respectée.

Merci pour votre aide ! Si vous voulez m'expliquer votre formule je serais aussi ravi : "newString := SubStr(theString,1,2) . "`t" . SubStr(theString,3,-2) . "`t" . SubStr(theString,-1)"

Script 2.0:

Code: Select all

Gui Add, Edit, w200 vREF2
Gui Show, , TEST
Return

GuiClose:
ExitApp

F1::
GuiControlGet,theString,, REF2
newString := SubStr(theString,1,2) . "`t" . SubStr(theString,3,-2) . "`t" . SubStr(theString,-1)
GuiControl,, REF2, % newString
Sendinput, % newString
return

Re: METTRE DES TABULATIONS DANS UNE SERIES DE NOMBRES

Posted: 07 Nov 2019, 14:01
by joedf
Le SendInput brise la fonction. Tu n'as plus besoin de le garder, la commande GuiControl,, REF2, % newString change déjà le contenu. Alors, tu devrais enlever Sendinput, % newString.

Pour la formule newString := SubStr(theString,1,2) . "`t" . SubStr(theString,3,-2) . "`t" . SubStr(theString,-1):
  • SubStr(theString,1,2): retourner le texte d'à partir de la première lettre jusqu’à la deuxième (inclusif).
  • . : joindre le text avec ce qui suit, mais c'est optionnel. On peu les enlever et la formule fonctionnerais.
  • SubStr(theString,3,-2): retourner le texte d'à partir de la 3e lettre jusqu’avant les deux dernières lettres
  • SubStr(theString,-1): retourner seulement les deux dernières lettres.

Re: METTRE DES TABULATIONS DANS UNE SERIES DE NOMBRES

Posted: 07 Nov 2019, 17:23
by alexooo
Tu m'as fais réfléchir et comprendre comment j'obtenais mon résultat final ! il correspond parfaitement à mes attentes.

Merci beaucoup de ta réactivité, efficacité et générosité ! joedf la solution du forum :D :D :D :bravo:

Re: METTRE DES TABULATIONS DANS UNE SERIES DE NOMBRES

Posted: 08 Nov 2019, 09:13
by joedf
Ça me fait plaisir! :thumbup: