Extraire une partie d'une chaine de caractères [Résolu]

Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
- - Dernière réponse : cs_Didier72
Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
- 3 avril 2007 à 16:49
Hello

Comment puis-je extraire une partie d'une chaine de caratère ?

En VB6 j'utilisais:
Left$(chaine, x,y) ---> en Visual Studio 2005 ?
Right$(chaine,x'y) --> en Visual Studio 2005 ?

En VISUAL STUDIO 2005
Surtout pour ce cas précis:
Ma chaine = "D:\toto\Dossier"

et j'aimerai sortir:
Nouvelle chaine = "D:\toto"

MErci de votre aide
  
Afficher la suite 

20/30 réponses

Meilleure réponse
Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
3
Merci
re

Marche pas en utilsant les même instructions ????

elles sont pas reconnues

@+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Didier72
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
3
Merci
Dim
MaChaine

As



String
=

"D:\toto\Dossier"


Dim
SplitMaChaine()

As



String


SplitMaChaine = Split(MaChaine,

""
, -1, CompareMethod.Text)
MaChaine = SplitMaChaine(0) &

""
& SplitMaChaine(1) &

""


MsgBox(MaChaine)

MaChaine = MaChaine.Trim(

""
) &

""


MsgBox(MaChaine)





 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
3
Merci
Ou encore:
MaChaine.Substring(MaChaine.IndexOf(




""
))
MsgBox(MaChaine)





 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
3
Merci
pardon je me suis planter le split c'est bon mais pas les autres je regarde!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
1
3
Merci
Je suppose que si Left et Right ne fonctionne pas Mid non plus

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Nicko11
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
3
Merci
Salut Dikce,

Puisque tu regardes sous VB.Net : regarde s'il a l'équivalent de InstrRev (car alors tu as d'entrèée de jeu la position du dernier \)  et il ne te reste plus qu'à prendre tout ce qui se trouve à gauche de cette position - 1

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jmfmarques
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
3
Merci
si mais chez moi je dois mettre comme ceci

MaChaine = Microsoft.VisualBasic.Right(MaChaine, 8)

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
3
Merci
Au top Charles Racaud !
Et avec les méthodes de la class string tu aurais fait quoi, juste pour info?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
25
3
Merci
J'aurai fait ceci :



Dim MaChaine As String = "D:\toto\Dossier"
Dim MaNouvelleChaine As String = MaChaine.Substring(0, MaChaine.LastIndexOf("\")),

----

(Coloration syntaxique automatique par Kenji)






__________
 Kenji

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
3
Merci
je te conseil comme même la méthode de 231472 Charles Racaud ! (c'est moins lourd que mes système D )


Dim
MaChaine

As



String =
"D:\toto\temp\Dossier"

Dim
MaNouvelleChaine

As



String
= MaChaine.Substring(0, MaChaine.LastIndexOf(

""
)) &

""



 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 204 internautes nous ont dit merci ce mois-ci

Commenter la réponse de drikce06
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
0
Merci
jmfmarques IndexOf("" ) indique le nombre de fois que l'on a "" dans la chaîne mais pas sa position, maintenant c'est ce que je dois chercher!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
La seule fonction pour cela en VB.Net est la methode Mid de la classe String.

SVP oublier le namespace Microsoft.VisualBasic, si c'est pour faire du code VB6 restez en VB6

Abandonner les instructions Left et Right, même en VB6, ce ne sont que des surcharges de Mid.

Left(chaine , x) --> Mid(chaine , 0 , x)
Right(chaine , y) --> Mid(chaine , chaine.lenght - y )

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
0
Merci
Dim
MaChaine

As



String
=

"D:\toto\Dossier"






Dim
MaChaine1

As



String

MaChaine1 = MaChaine.Substring(8)


MaChaine = MaChaine.Replace(MaChaine1,




""
)





 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
Petite erreur de ma part, ça arrive quand on va trop vite.

l'instruction Mid de VB6 est remplacer par la methode Substring de la classe string en VB.Net

Le fonctionnement est le même.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
0
Merci
Dim
MaChaine

As



String
=

"D:\toto\Dossier"






Dim
MaChaine1

As



String






Dim
Position

As



Integer
= InStrRev(MaChaine,

""
, -1, CompareMethod.Text)MaChaine1 = MaChaine.Substring(Position)

MaChaine = MaChaine.Replace(MaChaine1,


""
)MsgBox(MaChaine)






 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
0
Merci
http://www.beta.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=265882


 


A utiliser donc comme dit plus haut (tout ce qui se trouve à) gauche de cette position - 1
Commenter la réponse de jmfmarques
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
0
Merci
En tout cas en cherchant un peu c'est pas les méthodes qui manquent! Après à savoir laquelle est la mieux je ne sais pas! Mais au final c'est le résultat qui compte! Mais je compte bien sur casy pour l'a trouvé cette solution optimisé et il faudra que je m'en rappel!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
25
0
Merci
Bonjour tout le monde.

Si c'est juste pour récupérer le chemin du dossier parant :



Dim PathStr As String = (New System.IO.DirectoryInfo("D:\toto\Dossier")).Parent.FullName,

----

(Coloration syntaxique automatique par Kenji)



Sinon, je confirme, oublier le Microsoft.VisualBasic. Tout le nessecaire est dans la class String





__________
 Kenji
Commenter la réponse de Charles Racaud
Messages postés
2247
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
5
0
Merci
Au fait accepte seulement le ou les post qui t'ont apportés la solutions sinon on ne si retrouve pas!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
Commenter la réponse de drikce06
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
25
0
Merci
J'avais pas vu celui la : (encore plus simple) :
Dim PathStr As String = System.IO.Directory.GetParent("D:\toto\Dossier").FullName



__________
 Kenji
Commenter la réponse de Charles Racaud