[R] Spliter une chaine pour les 5 caractères

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

[R] Spliter une chaine pour les 5 caractères

#1

Message par Laddy »

Bonjour à tous

Jessaie de créer une fonction qui serait capable de spliter une chaine de caractère en groupe de 5x5

Si je saisis : FRDF73R44T6ZG5RCFG3DED87Z


j'aimerai le transformer en groupe de 5x5 séparé par un tiret.
FRDF7-3R44T-6ZG5R-CFG3D-ED87Z

Auriez vous des idées ?

Pour compter le nombre de caractère ça va, je sais faire mais apres je bloque.

Code : Tout sélectionner

$key = "FRDF73R44T6ZG5RCFG3DED87Z"
$nb = StringLen($key)
If $nb = "25" Then
msgbox(0,"Comptage", $nb)
EndIf

Func SplitKey()
;que mettre ???
EndFunc
 
Je ne vois pas comment m'y prendre.
Quelqu'un aurait une idée ?
Modifié en dernier par Laddy le jeu. 16 févr. 2012 06:58, modifié 2 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..]spliter une chaine pour les 5 caractères

#2

Message par mikell »

Code : Tout sélectionner

$string = "FRDF73R44T6ZG5RCFG3DED87Z"
Msgbox(0, "", StringRegExpReplace($string, '(\w{5})(\w{5})(\w{5})(\w{5})(\w{5})', "$1-$2-$3-$4-$5") )
:mrgreen:
Tu as aussi la fonction _StringInsert avec une boucle "For $i = 5 to 20 step 5" pour la position
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..]spliter une chaine pour les 5 caractères

#3

Message par TT22 »

Mais si par la suite tu as besoins d'utiliser tes chaines de 5 caractères indépendamment, tu peux utiliser un StringRegExp :

Code : Tout sélectionner

 StringRegExp("FRDF73R44T6ZG5RCFG3DED87Z", "(.{1,5})", 3)
Ce qui donne avec les traits d'union :
► Afficher le texte
Cordialement,
TT22
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..]spliter une chaine pour les 5 caractères

#4

Message par Laddy »

Mes sauveurs je navais pas pensé au StringRegEx.

Je dois l'appliquer sur plusieurs inputs y a t il moyen de faire une fonction qui l'applique à m'importe quel champ ?

Code : Tout sélectionner

StringRegExpReplace(GuictrlRead($input1), '(\w{5})(\w{5})(\w{5})(\w{5})(\w{5})', "$1-$2-$3-$4-$5"))
StringRegExpReplace(GuictrlRead($input2)
, '(\w{5})(\w{5})(\w{5})(\w{5})(\w{5})', "$1-$2-$3-$4-$5"))
StringRegExpReplace(GuictrlRead($input3)
, '(\w{5})(\w{5})(\w{5})(\w{5})(\w{5})', "$1-$2-$3-$4-$5"))
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..]spliter une chaine pour les 5 caractères

#5

Message par TopXm »

Hello Laddy :)
Laddy a écrit :Je dois l'appliquer sur plusieurs inputs y a t il moyen de faire une fonction qui l'applique à m'importe quel champ ?
C'est ce que t'a proposé Mikell ;)

Code : Tout sélectionner

ConsoleWrite(_RegExpLaddy(GuictrlRead($input1) & @CRLF)
ConsoleWrite(_RegExpLaddy(GuictrlRead($input2) & @CRLF)
ConsoleWrite(_RegExpLaddy(GuictrlRead($input3) & @CRLF)

Func _RegExpLaddy($String)
    Return StringRegExpReplace($string, '(\w{5})(\w{5})(\w{5})(\w{5})(\w{5})', "$1-$2-$3-$4-$5")
EndFunc
 
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [..]spliter une chaine pour les 5 caractères

#6

Message par Laddy »

Super Merci TopXm je n'ai jamais fait encore de "fonctions guidées", je pense avoir compris maintenant reste à tester dès que possible.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Spliter une chaine pour les 5 caractères

#7

Message par Tlem »

C'est une partie du gratin qui vous a répondu, donc vous pouvez y aller les yeux fermés. :lol:

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
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é".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Spliter une chaine pour les 5 caractères

#8

Message par TommyDDR »

Bonjour laddy, si ça peut vous aider (même si c'est déjà résolu ^^), j'avais fait une fonction qui me permettait d'insérer un caractère dans une chaine tout les x caractères.

(Je voulais transformer 12345678 en 12 345 678 pour plus de lisibilité)
► Afficher le textecode
$Sens permet d'indiquer par quel bout on commence à traiter la chaine (1 = gauche à droite, -1 = droite à gauche)

Code : Tout sélectionner

PutChar("12345678", " ", 3, 1) ; = 123 456 78
PutChar("12345678", " ", 3, -1) ; = 12 345 678
En espérant vous aider.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Laddy
Niveau 7
Niveau 7
Messages : 321
Enregistré le : mer. 03 sept. 2008 07:34
Status : Hors ligne

Re: [R] Spliter une chaine pour les 5 caractères

#9

Message par Laddy »

Merci Tommyddr je vais regarder ton code dès que possible c'est intéressant
Répondre