Page 1 sur 1

[R] Functions string

Posté : mar. 27 mai 2014 17:31
par julie
boujour :P
aujourd'hui petit souci qui me prend la tete pourtant cela semble simple

j'ai pusieur chaine de caractere sous cette forme:

salut la communaute_168465
comment allez vous _124

comme vous avez pue le remarquer chaque fin de chaine de cractere ce fini par un _ suivi de chiffre
si seulement il y avait a chaque fois que 5 chiffre j'aurai fait un simple StringRight mais ducoup
la je doit recuperer tous les caractere qui ce trouve apres le _
ca doit pas etre difficile je pense mais je n'y arrive pas .

merci pour votre aide :)

Re: [..] Functions string

Posté : mar. 27 mai 2014 17:49
par aulus
$chaine = "salut la communaute_168465"
$chaine = $tringSplit($chaine,"_")
MsgBox(0,"",$chaine[2])

Re: [..] Functions string

Posté : mar. 27 mai 2014 17:57
par julie
simple comme bonjour ...
merci beaucoup je passe en resolu :)

Re: [R] Functions string

Posté : mar. 27 mai 2014 18:31
par julie
enfaite il y a un souci enfin par pour le moment mais si ca arrive un jour ...

imaginons qu'un jours une chaine de caractere ce presente comme ceci
salut a tous_comment ca va _4684

le premier tirez va fausser le resultat et me retourner "comment ca va"

y a t'il moyen de faire une lecture de droite a gauche comme ca la premiere chaine lue serait a coup sur toujours la bonne ?

$chaine = "salut la_communaute_168465"
$chaine = $tringSplit($chaine,"_")
MsgBox(0,"",$chaine[1])

Re: [R] Functions string

Posté : mar. 27 mai 2014 18:34
par julie
j'aime m'auto repondre :wink:

j'ai trouver la solution

$chaine = "salut la_communaute_168465"
$reverse1 = StringReverse($chaine)
$chaine = stringSplit($reverse1,"_")
$reverse2 = StringReverse($chaine[1])

Re: [R] Functions string

Posté : mar. 27 mai 2014 18:59
par GaRydelaMer
Bonsoir

une autre solution du coté obscur des strings:

Code : Tout sélectionner

Local $Pattern = "(.*)_(\d+)"
ConsoleWrite(StringRegExpReplace("salut la_communaute_168465", $Pattern, "$1") & @LF)
ConsoleWrite(StringRegExpReplace("salut la_communaute_168465", $Pattern, "$2") & @LF)

ConsoleWrite(StringRegExpReplace("salut la communaute_168465", $Pattern, "$1") & @LF)
ConsoleWrite(StringRegExpReplace("salut la communaute_168465", $Pattern, "$2") & @LF)
 

Re: [R] Functions string

Posté : mar. 27 mai 2014 19:52
par mikell
Ou encore, si ce qui doit être récupéré est toujours en fin de chaîne :

Code : Tout sélectionner

$chaine = "salut la_communaute_168465"
$split = StringSplit($chaine,"_")
MsgBox(0,"", $split[$split[0]])
Pas fun le StringReverse à répétition :P

Re: [R] Functions string

Posté : mar. 27 mai 2014 20:36
par julie
Merci pour ses reponses :)
@mikell j'avoue ce n'est pas top mais ça fonctionne. pour que ça fasse plus propre j'ai tout de même changer pour ton code ;) merci bonne soirée :)

Re: [R] Functions string

Posté : mar. 27 mai 2014 22:30
par mikell
julie a écrit : j'avoue ce n'est pas top mais ça fonctionne.
Les roues carrées aussi si on pousse suffisamment fort :mrgreen:
Bonne soirée à toi aussi

Re: [R] Functions string

Posté : mer. 28 mai 2014 10:30
par julie
oh ca va hein .. :P

Re: [R] Functions string

Posté : mer. 28 mai 2014 20:17
par aulus
mikell a écrit :Ou encore, si ce qui doit être récupéré est toujours en fin de chaîne :

Code : Tout sélectionner

$chaine = "salut la_communaute_168465"
$split = StringSplit($chaine,"_")
MsgBox(0,"", $split[$split[0]])
Pour récupérer le dernier élément d'un tableau je faisais jusqu'à présent : $split[UBound($split) - 1]... Il ne m'est jamais venu à l'esprit d'utiliser l'élément d'indice 0... qui est pourtant tellement plus simple !

Re: [R] Functions string

Posté : mer. 28 mai 2014 21:04
par mikell
Certes mais attention, StringSplit peut avoir différents flags et cette solution ne marche que si le flag est < 2 ("the return count in the first element") donc que le compte figure bien à l'index 0 :wink: