Supprimer une chaine

Résolu
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 - 29 avril 2007 à 21:44
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 30 avril 2007 à 19:13
Bonjours, je cherche à supprimer un chaine de caractères sachant que je connais cette chaine.
exemple:
j'ai la chaine suivante:
C:\MonDossier\MonFichier
je veut supprimer par exemple:
C:\MonDossier\

Euh, je pense que l'exemple n'était pas vraiment nessecaire.

Voila

Merci d'avance

Bye

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://jbaudoux.club.fr/veler/

23 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
30 avril 2007 à 19:06
salut;

un copain (mais je ne connais pas VB.Net et me méfie tant de VB.Net que du copain), m'affirme :

msgbox substring(0, instrev(le_chemin_complet, "/"))

A-t-il vraiment raison ?
3
ptit_tof57 Messages postés 79 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 4 avril 2009 1
29 avril 2007 à 21:59
Salut tu peux le faire en mettant cette chaine dans une variable que l'on va appelé VarChaine, donc si on résume :

Private Sub test()

        Dim VarChaine As String = "C:\MonDossier\MonFichier"
        MessageBox.Show(VarChaine.Remove(0, 14))   'Ici la méthode utilisée est Remove le premier chiffre correspond a l'index de départ et le deuxieme
au l'index de fin des caractères a supprimé.

    End Sub

A+, Tof
0
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
29 avril 2007 à 22:03
Ok, zut, j'ai pas préçisé que la chaine que l'on connais provient d'un textebox, donc c'est pas possible d'utiliser les nombres de caractère, mais sa m'a donné une idée, je vais plutôt essayer de remplacer la chaine.

Merci

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://jbaudoux.club.fr/veler/
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 avril 2007 à 22:08
Salut,

regarde si en DotNet tu n'as pas Right et InStr

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0

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

Posez votre question
ptit_tof57 Messages postés 79 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 4 avril 2009 1
29 avril 2007 à 22:08
avec la propriété length de VarChaine tu peux obtenir la longeur de la chaine provenant de la textbox si ça peut t'aidé. Sinon je pense peut etre qu'il faudrais te tourné vers les expressions regulière mais la je ne peux pas t'aidé à  ce sujet. Bon courage.
A+
Tof
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 avril 2007 à 22:13
Voici ce qui est faisable en VB6 :
Mot = Right$(TextBox1.Text, Len(TextBox1.Text) - InStrRev(TextBox1.Text, ""))

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
29 avril 2007 à 22:16
Mrd, chui en VB.Net, je vais essayer lenght

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://jbaudoux.club.fr/veler/
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
29 avril 2007 à 22:21
Oui, j'ai vu la section de ton post, mais cela peut peut-être t'aider, il y a sûrement les équivalent en dotnet

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
29 avril 2007 à 22:23
0
ptit_tof57 Messages postés 79 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 4 avril 2009 1
29 avril 2007 à 22:24
Je viens de faire une recherche de ces méthode dans l'explorateur d'objet et elles semble être présentent. Mais peut être par soucis de compatibilité entre les deux version.
0
ptit_tof57 Messages postés 79 Date d'inscription lundi 28 août 2006 Statut Membre Dernière intervention 4 avril 2009 1
29 avril 2007 à 22:24
Je viens de faire une recherche de ces méthode dans l'explorateur d'objet et elles semble être présentent. Mais peut être par soucis de compatibilité entre les deux version.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 avril 2007 à 02:20
Bah je fais pas encore du DotNet, mais c'était pas loin.
Suffit de tester... ça m'a pris 2 minutes, maintenant, il se peut que ce ne soit pas la meilleure façon de procéder, mais ça fonctionne :

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Mot1, Mot2 As String

        Mot1 =  "C:\Chemin\Nom fichier.ext"
        Mot2 = Strings.Right(Mot1, Strings.Len(Mot1) - Strings.InStrRev(Mot1, ""))
        MessageBox.Show(Mot2)
    End Sub
End Class

~ <small> Mortalino ~ Colorisation automatique </small>

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 avril 2007 à 09:43
LEs fonctions Len, left, .... sont toujours présente dans VB2005, car la référence Microsoft.VisualBasic est intégrée dans le projet.
Cette référence n'est là que pour assurer une certaine compatibilité avec VB6 et permet d'une certaine façon du faire du code "VB6" sous VB2005.

Je ne saurais trop te conseiller de décocher cette référence (dans les propriétés du projet) pour t'obliger à faire du code .Net et ainsi définitivement te débarasser du dinosaure VB6.  Car si tu veux faire du code VB6, tu ne trouveras pas plus performant et adapté que VB6 lui-même.

Pour ce qui est des fonctions de manipulation des chaines, tout est intégré dans la classe String. Ainsi
InStr devient String.IndexOf
InStrRev devient String.LastIndexOf
Len devient String.Lenght
Mid devient String.SubString

Quant à Left et Right, n'étant que des surcharges de Mid, même en VB6, elles n'existent plus, mais sont remplaçables par SubString (puisque remplaçable par Mid en VB6).

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
30 avril 2007 à 09:52
Moi je serais assez pour supprimer la chaine tf1...

Sinon pour supprimer un répertoire à partir d'une chaine tu peux:
Lancer un rd C:\MonDossier avec un Shell sous VB ;)
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 avril 2007 à 12:34
Merci de m'avoir filer les équivalents Casy    Reste plus qu'à retenir.

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 avril 2007 à 13:24
"...Reste plus qu'à retenir...."

Non reste plus qu'à passer définitivement à .Net et oublier VB6

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 avril 2007 à 17:41
T'es fou !!
C'est galère avec les GetUpperUbound, les Witch et j'en passe. Ca n'a vraiment rien à voir...

Mais comme tu dis, va bien falloir y passer définitivement !

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
30 avril 2007 à 18:49
Salut, le VB.Net, c'est maintenant mieu que le VB6 surtout depuis qu'on sait que c'est compatible Vista.
Alors, En fait, pourquoi je veut trouver un code pour supprimer une partie d'une chaine, c'est parce que j'ai un code qui liste les fichiers et répertoires d'un répèrtoire racine et affiche sa dans un Treeview. Et, je ne veut pas qu'on voit le chemin complet du dossier.

Vla

Merci d'avance

Bye

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://jbaudoux.club.fr/veler/
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 avril 2007 à 18:51
Beh t'as plus qu'à transformer mon code avec les équivalents laissés par Casy.
Ca ne devrait pas poser de problèmes.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_veler Messages postés 723 Date d'inscription dimanche 26 novembre 2006 Statut Membre Dernière intervention 23 janvier 2013 2
30 avril 2007 à 19:12
Salut, c'est bon, sa fonctionne parfaitement, tu diras à ton pote que je le remercie.

Voila

Merci encore de votre aide

Bye

ebaudoux@club.fr
http://velerweb-2.fr.nf
http://jbaudoux.club.fr/veler/
0
Rejoignez-nous