[R] Supprimer les espaces en trop d'une chaîne de caractère

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
clark17
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 23 sept. 2011 02:12
Status : Hors ligne

[R] Supprimer les espaces en trop d'une chaîne de caractère

#1

Message par clark17 »

Bonjour,

J'ai une chaîne de caractère qui peut contenir des mots avec parfois des espaces à l'intérieur mais aussi et surtout des espaces à la fin de la chaîne. J'aimerai me débarrasser de ses espaces en trop mais je ne vois pas trop comment m'en sortir...

Par exemple j'ai ce genre de chaînes (les points sont des espaces):
TAAOUINE........
AAAA..BBBB.....................
Modifié en dernier par clark17 le ven. 15 févr. 2013 16:28, 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: [..] Supprimer les espaces en trop d'une chaîne de carac

#2

Message par mikell »

Code : Tout sélectionner

StringStripWS ( "string", [color=#880000]8[/color] )
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

#3

Message par ani »

ou bien ;)
ConsoleWrite(StringRegExpReplace("AAAAAAA BBBBBBBB CIDJI IDJ ","\s",""))
vous renverra AAAAAAABBBBBBBBCIDJIIDJ
clark17
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 23 sept. 2011 02:12
Status : Hors ligne

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

#4

Message par clark17 »

Grrr il m'a coupé les espaces dans les guillemets, j'ai remplacé par des points. Je veux juste me séparer des espaces à la fin du mot, pas à l'intérieur.
clark17
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 23 sept. 2011 02:12
Status : Hors ligne

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

#5

Message par clark17 »

Je m'auto répond, à l'aide de la fonction StringStripWS et le flag 1+2 il m'enlève les espaces au début et à la fin. Ça nous donne ceci:

Code : Tout sélectionner

Local $text = StringStripWS("   this    is   a   line    of   text   ", 3)
MsgBox(0, "Stripped from both ends", $text)
 
Merci à vous, sujet résolu.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Supprimer les espaces en trop d'une chaîne de carac

#6

Message par TommyDDR »

clark17 a écrit :Je m'auto répond
Ou le vilain, Mikell vous a donné 99% de la réponse. ^^
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [R] Supprimer les espaces en trop d'une chaîne de caract

#7

Message par ani »

Code : Tout sélectionner

ConsoleWrite(StringRegExpReplace("      AAAAAAA BBBBBBBB CIDJI IDJ       ","\s+\z","") & @LF)
Ceux-ci retira tout les espacement à la Fin de la chaine.
\s = recherche les espaces, @TAB,@LF, @CRLF
+ = repete le caractere
\z = recherche a la fin de la chaine

reviend à l'identique

Code : Tout sélectionner

ConsoleWrite(StringStripWS ( "      AAAAAAA BBBBBBBB CIDJI IDJ       ", 2 ) & @LF)
les valeurs pour StringStripWS
1 = retire tout les espacement du Debut
2 = retire tout les espacement de Fin
3 = retire tout les espacement du Debut et Fin
4 = retire les espacement double en debut et fin de chaine
8 = retire tout les espaces

SI vous voulez retirez en debut et fin de chaine comme votre auto réponse(c l'exemple fournis de l'aide), vous avez ceux-ci en regex

Code : Tout sélectionner

ConsoleWrite(StringRegExpReplace("      AAAAAAA BBBBBBBB CIDJI IDJ       ","^\s+|\s+\z","") & @LF)
ConsoleWrite(StringRegExpReplace("      AAAAAAA BBBBBBBB CIDJI IDJ       ","\A\s+|\s+\z","") & @LF)
^ = debut
\A = debut de chaine
| = ou bien

voilàvoilà
Répondre