Supprimer fin de chaine à partir de "\" [Résolu]

Signaler
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
-
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
-
Bonjour,

Je souhaiterais supprimer la fin d'une chaine de caractère (un chemin complet d'un fichier) à partir du dernier slash, pour n'avoir que le chemin du dossier qui contient ce fichier , je suis clair ;-)?

Comment faire svp?

merci


Malo

12 réponses

Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
Solution trouver :

http://www.vbfrance.com/codes/DERNIERE-OCCURENCE-CARACTERE-CHAINE-CARACTERES_1941.aspx

    Function LastOccurence(strString As String, strCharacter As String) As Integer
    Dim intPosition As Integer
    intPosition = 1
    While intPosition <= Len(strString) And strCharacter <> "" And InStr(intPosition, strString, strCharacter) <> 0
    intPosition = InStr(intPosition, strString, strCharacter)
    LastOccurence = intPosition
    intPosition = intPosition + 1
    Wend
    End Function 


Malo
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
Mon code final :

    Dim Chemin   As String
    Dim Chemin2  As String
    Dim Chaine   As String
    Dim NBChaine As Long
    
    Chemin = Dir1.Path & "" & File1.FileName
    Chaine = ""
    
'affiche le chemin complet
    Text2.Text = Chemin
    
    '-------------------------
    'affiche où se situe la derniere occurence en partant de la gauche
    NBChaine = LastOccurence(Chemin, Chaine)
    
    Chemin2 = Left$(Chemin, Len(Chemin) - (Len(Chemin) - NBChaine))

'affiche le chemin du dossier dans lequel se situe le fichier
    Text3.Text = Chemin2




Malo
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
Ouvre ton aide VB6 (MSDN) sur le mot InstrRev
Une fois connue cette position : ===>> fonction Left

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
Bonour, je n'ai pas MSDN d'installer mais je vais chercher sur google

merci de ton aide


Malo
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
je n'ai pas MSDN d'installer

Installe-la donc ! Elle est indispensable, y compris aux développeurs les plus avancés !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
oui je sais bien, je lavais mais l'ai désinstaller par manque de place. MSDN en ligne la remplace bien.

Je viens de trouver StringMatch qui pourrait m'aider je pense.

Malo
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
Je viens de faire ce code et de le tester, mais il me renvoie une valeur 0 dans text1 :

    Dim Chemin As String
    Dim Chaine As String
    
    Chemin = Dir1.Path & "" & File1.FileName
    Chaine = ""
    
    Text1.Text = InStrRev(Chemin, Chaine)


???
Malo
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Oh !
Tu viens, dans tes deux messages successifs de montrer deux incompréhensions !
1) Dans le premier : mais ... tu avais déjà ta chaîne (Dir1.Path & "")
2) dans ton seconde message : une boucle while pourquoi faire ?
Si tu es bien en VB6 :
toto = "C:\titi\blaba\machin.fff"
MsgBox Left(toto, InStrRev(toto, ""))
*
Ah ?
Tu commences peut-être à comprendre la nécessité d'installer cette fameuse aide VB6 ? (plutôt que d'aller pêcher n'importe quoi - sans même le comprendre - sur le Net ?)
Allez ===>> un clic sur le tag "réponse acceptée" pour clore ce sujet ouvert sur ce qui n'aurait jamais du être ouvert !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
J'ai chercher avant de poster. Même si j'avais eu l'aide, si je ne connais pas le nom de la fonction, il est dur de trouver parfois.

C'est parce que tu m'as donner le nom de la fonction que j'ai pu trouver ce qui me convenait.

Merci.

    Dim Chemin   As String
    Dim Chemin2  As String
    Dim Chaine   As String
    Dim NBChaine As Long

    Chemin = Dir1.Path & "" & File1.FileName
    Text1.Text = Chemin
    Chaine = ""
    
    Chemin2 = Left(Chemin, InStrRev(Chemin, ""))
    Text2.Text = InStrRev(Chemin, "")
    Text3.Text = Chemin2


Malo
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
mais ... tu avais déjà ta chaîne (Dir1.Path & "")

pour l'exemple oui, mais dans mon appli, le chemin viens d'un listbox et j'ai donc le chemin en entier.

Pour la boucle While, je ne connait pas encore, j'avoue avoir copier-coller le code tel quel sans trop l'avoir regarder.

J'essaye de comprendre au fur et à mesure des petits bouts de code, mais ne les déchiffre pas tous tout le temps.

En tout cas merci de ton aide.

Malo
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Hé bé !
C'en est à pleurer !
Le code que tu montres implique l'utilisation d'au moins deux contrôles (dirlistbox et Filelistbox)
et donc ce que tu cherches est simplement le résultat retourné par Dir1.path !!!
text3.text = dir1.path !!!
Tu te rends compte ??????????
Excuse-moi, mais moi, à ce niveau, je vais faire ma sieste, hein.
Bonne chance !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
88
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
13 juin 2013
1
pour l'exemple oui, mais dans mon appli, le chemin viens d'un listbox et j'ai donc le chemin en entier.


Malo