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

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

30 réponses

Répondre au sujet
cs_Didier72 76 Messages postés dimanche 10 octobre 2004Date d'inscription 13 juin 2015 Dernière intervention - 3 avril 2007 à 11:20
+3
Utile
re

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

elles sont pas reconnues

@+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Didier72
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:23
+3
Utile
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:
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:25
+3
Utile
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:
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:27
+3
Utile
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:
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 3 avril 2007 à 11:30
+3
Utile
Je suppose que si Left et Right ne fonctionne pas Mid non plus
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Nicko11
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 avril 2007 à 11:33
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:34
+3
Utile
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:
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:59
+3
Utile
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:
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 3 avril 2007 à 12:02
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Charles Racaud
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 14:16
+3
Utile
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:
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de drikce06
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:35
0
Utile
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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 3 avril 2007 à 11:42
0
Utile
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
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:43
0
Utile
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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 3 avril 2007 à 11:46
0
Utile
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
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:47
0
Utile
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
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 3 avril 2007 à 11:49
0
Utile
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
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:53
0
Utile
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 3 avril 2007 à 11:55
0
Utile
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
drikce06 2247 Messages postés lundi 29 mai 2006Date d'inscription 29 mai 2008 Dernière intervention - 3 avril 2007 à 11:55
0
Utile
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
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 3 avril 2007 à 11:56
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Extraire une partie d'une chaine de caractères - page 2