Supprimer fin de chaine à partir de "\"

Résolu
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 - 17 nov. 2012 à 10:17
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 - 17 nov. 2012 à 13:25
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

malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 12:40
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
3
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 12:49
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 nov. 2012 à 10:22
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
0
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 10:38
Bonour, je n'ai pas MSDN d'installer mais je vais chercher sur google

merci de ton aide


Malo
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 nov. 2012 à 10:44
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
0
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 12:28
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
0
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 12:38
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 nov. 2012 à 12:49
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
0
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 12:58
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
0
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 13:01
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 nov. 2012 à 13:08
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
0
malo777 Messages postés 88 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 13 juin 2013 1
17 nov. 2012 à 13:25
pour l'exemple oui, mais dans mon appli, le chemin viens d'un listbox et j'ai donc le chemin en entier.


Malo
0
Rejoignez-nous