Extraire une partie d'une chaine de caractères

Résolu
cs_Didier72
Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015
- 3 avril 2007 à 11:00
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
  

30 réponses

cs_Didier72
Messages postés
76
Date d'inscription
dimanche 10 octobre 2004
Statut
Membre
Dernière intervention
13 juin 2015

3 avril 2007 à 11:20
re

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

elles sont pas reconnues

@+
3
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:23
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:
3
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:25
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:
3
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:27
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:
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nicko11
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
3
3 avril 2007 à 11:30
Je suppose que si Left et Right ne fonctionne pas Mid non plus
3
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
3 avril 2007 à 11:33
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
3
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:34
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:
3
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:59
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:
3
Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
3 avril 2007 à 12:02
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
3
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 14:16
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:
3
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
3 avril 2007 à 11:46
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 #
1
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:35
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:
0
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
3 avril 2007 à 11:42
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 #
0
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:43
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:
0
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:47
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:
0
jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
3 avril 2007 à 11:49
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
0
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:53
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:
0
Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
3 avril 2007 à 11:55
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
0
drikce06
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
3 avril 2007 à 11:55
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:
0
Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
3 avril 2007 à 11:56
J'avais pas vu celui la : (encore plus simple) :
Dim PathStr As String = System.IO.Directory.GetParent("D:\toto\Dossier").FullName



__________
 Kenji
0