Right en .NET

Résolu
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010 - 20 févr. 2007 à 15:11
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 15 juin 2007 à 19:51
Bonjour, ancien utilisateur de VB6 et utilisant aujourd'hui visual basic 2005
je voudrai connaitre ceci:

En VB6:
if Right(variable,2) = "o" then

Je voudrai réaliser l'opération précédente en vb net.
Cependant j'ai l'impression qu'il ne connait ni le LEFT ni le RIGHT
uniquement le Mid.

Au final lorsque j'ai une chaine de caractère du type:
c:\toto\tata\fichier.txt
j'aimerai récupérer uniquement la direction, c'est à dire c:\toto\tata\ sachant
que le chemin peut varier, je connait uniquement le nom du fichier.

Je voulais donc faire
For i=1 to len(chaine)
if Right(chaine,i) = "" then
'ainsi je sépare le fichier du chemin

Pouvez vous m'aider
A voir également:

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
20 févr. 2007 à 16:44
Regarde ce petit bout de code, je pense qu'il va t'inspiré, si j'ai bien compris ce que tu veux faire.

Dim MyOfd As New OpenFileDialog
Dim fich As New String("C:\Windows\system32\notepad.exe")

MessageBox.Show(String.Format("Le nom
du fichier : {0}", System.IO.Path.GetFileName(fich)))
MessageBox.Show(String.Format("Le
chemin sans le nom : {0}", System.IO.Path.GetDirectoryName(fich)))

'ouverture du OpenFileDialog sur le chemin
spécifié
MyOfd.InitialDirectory = System.IO.Path.GetDirectoryName(fich)
MyOfd.FileName = System.IO.Path.GetFileName(fich)
MyOfd.ShowDialog()

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
20 févr. 2007 à 15:53
Les fonctions Left, Right, .... existent toujours à condition d'importer le namespace de compatibilité VB6 Microsoft.VisualBasic. Mais quel interet de passer à .Net si c'est pour refaire du code VB6.

Sinon, les methodes de manipulations de chaines se trouvent dans la classe String et notamment la methode Substring qui replace les fonctions Left, Right, ....

Dans le cas particulier des chaines de caractères représentant des chemins, tu peux aussi utliser les méthodes de la classe Path. Notamment la methode .GetFileName pour le nom du fichier, .GetFileNameWithoutExt pour le nom du fichier mais sans l'extension

Voir aussi .DirectorySeparatorChar, si tu veux connaitre le caractère de séparation des dossiers "" ou "/" sous Windows.

Et enfin pour ton cas, .GetDirectoryName devrait etre ce que tu cherche.

PS : La classe Path est dans le namespace System.IO

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010
20 févr. 2007 à 16:22
Merci Casy mais dans mon code j'utilise un Openfiledialog, et ce composant n'utilise pas GetDirectoryName.


Sinon c'est exactement ce que je veux faire


As tu une idée avec Openfiledialog?
0
toosdu87 Messages postés 100 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 1 mars 2010
20 févr. 2007 à 17:04
Casy t'es mon IDOLE
0

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

Posez votre question
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
15 juin 2007 à 19:30
sinon des fois que tu ai besoin ailleurs des "left" et "right" ca existe toujours en vb. Ca a été rangé a uun endroit relativement logique et simple à retrouver
D'abord suffit d'ouvrir l'aide limité au vb.net et tu tapper "Right" et tu tombe sur la fonction Right :
Microsoft.VisualBasic.Right()

Retourne une chaîne contenant un nombre spécifié de caractères depuis la
partie droite d'une chaîne.

|----
Public Shared Function Right( _
ByVal str As String, _
ByVal Length As Integer _
) As

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.fr/dv_vbalr/html/a9a60c3d-7a5e-4f3e-9a92-c491105bc88f.htm
idem pour le "Left(), Asc(), Chr(), Split(), Join() ect ..."
cela dit on retrouve aussi certaine de ces fonctions dans la Classe string (mais ca n'a pas été enlevé pour autant)

TeBeCo
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 juin 2007 à 19:38
TeBeCo, si tu avais regardé la première réponse que j'ai donné, tu aurais vu que j'avais déjà donner cette indication, mais aussi que j'avais indiquer les raisons de leur présence ainsi que les raisons pour lequelles personellement je ne les utilises pas

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
15 juin 2007 à 19:51
j'ai survollé j'ai pas tout vu tte mes excuses

TeBeCo
0
Rejoignez-nous