Question [Résolu]Comportement curieux sur .TrimEnd()

Plus d'informations
il y a 10 ans 4 mois #21228 par Gabriel
petit test

[code:1]
PS C:\rip\series\saisons> (\"stargate atlantis.v7.csv\"«»).trimend(\"v7.csv\"«»)
stargate atlanti
PS C:\rip\series\saisons> (\"star trek voyager.v7.csv\"«»).trimend(\"v7.csv\"«»)
star trek voyager
PS C:\rip\series\saisons> (\"stargate sg1.v7.csv\"«»).trimend(\"v7.csv\"«»)
stargate sg1
[/code:1]

lorsque j'utilise .TrimEnd(), il arrive que la suppression inclus des caractères en +.

je veux retirer la fin de la chaine de caractères: stargate atlantis.v7.csv

Je devrait avoir : \"stargate atlantis\"

au lieu de ça j'ai : \"stargate atlanti\"

par contre d'autre chaine de caractères se comporteront \"correctement\" (voir les exemples ci-dessus)

question qu'est ce qui fait que le S degage :) ?

c'est seulement chez moi? (je suis en posh v5 sous win10)

Message édité par: tonic8, à: 5/01/16 15:02<br><br>Message édité par: tonic8, à: 5/01/16 16:26

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 4 mois #21229 par Philippe
salut tonic8

question qu'est ce qui fait que le S degage ?

comme l'explique ici la doc .Net , trim trimend et trimstart considère les caractères passe en paramètre comme un tableau de caractères et non comme une chaine de caractères !

il remonte la chaine à modifier à l'envers et compare chaque caractères aux caractères passé en paramètre et s'arrête des un caractère ne ce trouve pas dans le tableau (dans ton cas \&quot;i\&quot;) !

par exemples cette écriture fait la même chose :
[code:1](\&quot;stargate atlantis.v7.csv\&quot;«»).trimend('.vc7s')
[/code:1]

pour resoudre ton cas de figure soit tu enlevé l'extension puis le \&quot;v7\&quot; :
[code:1](\&quot;stargate atlantis.v7.csv\&quot;«»).trimend('.vcs').trimend('.v7')
[/code:1]
soit tu remplace la fin du texte par \&quot;rien\&quot; :
[code:1](\&quot;stargate atlantis.v7.csv\&quot;«»).replace('.v7.csv', '')
[/code:1]

bonne année avec powershell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 4 mois #21230 par Gabriel
bonjour 6ratgus

merci pour la precision, j'avais procédé au passage via .replace(), mais je pensais que le trimend était \&quot;plus\&quot; propre. genre le concept je prend tous les caractères a la fin de la string et je les drop.

le post c'était pour comprendre comment fonctionnait trim :)

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.036 secondes
Propulsé par Kunena