Chercher un caractère dans une string, en partant de la droite ! [Résolu]

Signaler
Messages postés
190
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
31 janvier 2019
-
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
Bonjour à tous

Je possède une variable STRING contenant un chemin d'accès avec un nom de fichier.
Je souhaiterai récupérer juste le nom de ce fichier ! Je voulais donc y aller à la bourrin ( car opeux etre que c# permet de faire ca en plus propre ?)

Bref je voudrais chercher dans cette String, le cractère ( ' \ ' ) EN PARTANT de la droite, puis ensuite couper ma chaine en partant de ce  (' \ ') jusqu'a la fin de la chaine !

J'ai donc vu que IndexOf servait à chercher un caractère ou une sous chaine de caractère dans une String !
Je voudrais faire une recherche, mais en partant de la droite ! Quelles solutions s'offrent à moi ?

Merci à vous !

Bonne journée

Cordialement
Nixeus'

11 réponses

Messages postés
60
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
21 août 2008

Utilise LastIndexOf.

Bien à toi,

Krish!
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Sinon, le plus simple pour récupérer le nom du fichier est d'utiliser la méthode

Path.GetFileName( string )

ou Path.GetFileNameWithoutExtension( string )

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
94
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
7 mars 2009
1
Salut Nixeus!

J'ai été confronté récemment au même problème que toi. Personnellement, j'ai opté pour l'utilisation de 'String.Split' (Qui permet de définir un séparateur, en l'occurrence '\' et de ranger la chaine ainsi "coupée" dans un tableau de String). L'avantage est que le nom de ton fichier est tout simplement contenu dans le dernier index de ton tableau, et que tu as le chemin entier découpé nickel dans ce même tableau !

Voila, ce "rangement" était idéal pour moi, j'espère qu'il te sera utile aussi
Messages postés
190
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
31 janvier 2019

Merci à toi :)

Par contre, pour rechercher un anti-slash ( '\') il y a une syntaxe particulière pour l'antislash en c# non ?

Merci :)

Nixeus'
Messages postés
94
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
7 mars 2009
1
Concrètement, "" est un inhibiteur (il faut donc forcément un caractère après). Pour l'utiliser sans qu'il annule le caractère ' " ' qui le suit, utilise maChaine.Split('\\');

Bonne chance
Messages postés
190
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
31 janvier 2019

Je ne comprend pas :s

Je voudrais faire ca :

int pos=0;
pos=FichierAChercher.LastIndexOf(
"");

Afin que pos contienne la position du 1er Antislash en partant de la fin !

Si c# n'aime pas cela, je peux pas passer par le code ascii ou hexa de l'antislash ?

Merci :)

Nixeus'
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
pos=FichierAChercher.LastIndexOf(
"\");

ou pos=FichierAChercher.LastIndexOf(@"");

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
il serait quand meme bon d'ouvrir un livre de temps en temps avant de poser des questions qui concernent les bases du langages.
Merci !

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
94
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
7 mars 2009
1
Sebmafate je ne connaissais pas cette méthode, je me la note pour plus tard merci

Quand a toi Nixeus, je te l'ai dit plus haut: il faut doubler l'anti-slash

> posFichierAChercher.LastIndexOf("\");
Messages postés
190
Date d'inscription
jeudi 18 janvier 2007
Statut
Membre
Dernière intervention
31 janvier 2019

Merci à vous :)

Pour les bouquins, je ne peux pas lire chaque bouquin sur chaque langage que j'apprend !
Je suis développeur, mais bon, la c# je m'y met pianissimo :)

Merci pour ton aide en tous cas :)

Nixeus'
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Dans ce cas, essaye au moins d'apprendre les bases de chaque langage !


Et la formulation correcte d'une string : c'est la base !

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]