Right en .NET [Résolu]

Signaler
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010
-
TeBeCo
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011
-
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

7 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
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 #
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
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 #
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010

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?
Messages postés
100
Date d'inscription
lundi 3 avril 2006
Statut
Membre
Dernière intervention
1 mars 2010

Casy t'es mon IDOLE
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

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
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
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
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

j'ai survollé j'ai pas tout vu tte mes excuses

TeBeCo