Module chemin

0/5 (4 avis)

Vue 4 679 fois - Téléchargée 406 fois

Description

Ce module va chercher n'importe quel nom du répertoire dans une chemin. Vous pouvez aussi sortir seulement l'extension du fichier dans le chemin, le nom du fichier plus son extension ou sans et même le backslash suivie du nom de fichier avec ou sans extension.

Source / Exemple :


Attribute VB_Name = "ModuleChemin"
Option Explicit
Dim a(20) As Integer ' Nombre de sous-répertoire maximum
Dim B As Integer ' Numéro de chaque BackSlash dans le chemin
Dim X As Integer ' Numéro du caractère dans le chemin
Dim Y As Integer ' Numéro du point
Public Function Chemin(Texte As String, Debut As Integer, Fin As Integer, backslash As Boolean) As String
B = 0 'Initialise la variable B pour une nouvelle passe
'Vérifie combien de répertoire dans le chemin
    For X = 1 To Len(Texte)
        If Mid(Texte, X, 1) = "\" Then
            B = B + 1
            a(B) = X
            Form1.ListNumero.AddItem B & "=" & a(B) 'Seulement pour le démo
        End If
    Next X
'Vérifie les entrées erronées
    If Fin < 1 Or Fin > B Then
        MsgBox "Fin erronée"
        Exit Function
    End If
    If Debut < 0 Or Debut > B Or Debut >= Fin Then
        MsgBox "Debut erronée"
        Exit Function
    End If
'Si le debut est le root
    If Debut = 0 Then
        Chemin = Left(Texte, a(Fin) - 1)
            If backslash Then Chemin = Left(Texte, a(Fin))
        Exit Function
    End If
'Si le debut est autre que le root
Chemin = Mid(Texte, a(Debut), a(Fin) - (a(Debut)))
    If backslash Then Chemin = Mid(Texte, a(Debut), a(Fin) - (a(Debut) - 1))
End Function
Public Function Fichier(Nom As String, backslash As Boolean, Point As Boolean, Ext As Boolean) As String
B = 0 'Initialise la variable B pour une nouvelle passe
'Vérifie ou est le point dans le chemin
    For X = Len(Nom) To 1 Step -1
        If Mid(Nom, X, 1) = "." Then Y = X
        If Mid(Nom, X, 1) = "\" Then
            B = X
            Exit For
        End If
    Next X
'Si juste l'extension est choisi
    If Ext = True And Point = False Then
        Fichier = Mid(Nom, Y + 1, Len(Nom) - Y)
        Exit Function
    End If
'Si le point et l'extension sont choisi
    If Point And Ext Then
        Fichier = Mid(Nom, B + 1, Len(Nom))
            If backslash Then Fichier = Mid(Nom, B, Len(Nom))
        Exit Function
    End If
'Si le seulement le point est choisi
    If Point Then
        Fichier = Mid(Nom, B + 1, Y - B)
            If backslash Then Fichier = Mid(Nom, B, Y - B + 1)
        Exit Function
    End If
'Si seulement le nom du fichier est choisi
Fichier = Mid(Nom, B + 1, Y - (B + 1))
            If backslash Then Fichier = Mid(Nom, B, Y - (B))
End Function
Public Function Remonte(Repertoire As String, Rep As Integer, backslash As Boolean) As String
Dim DernierRep As Integer
B = 0 'Initialise la variable B pour une nouvelle passe
'Vérifie combien de répertoire dans le chemin
    For X = 1 To Len(Repertoire)
        If Mid(Repertoire, X, 1) = "\" Then
            B = B + 1
            a(B) = X
            Form1.ListNumero.AddItem B & "=" & a(B) 'Seulement pour le démo
        End If
    Next X
DernierRep = B
'Vérifie les entrées erronées
    If Rep < 1 Or Rep > (B - 1) Then
        MsgBox "Rep erronée"
        Exit Function
    End If
'Retourne
Remonte = Mid(Repertoire, a(B - Rep), a(B) - a(B - Rep))
    If backslash Then Remonte = Mid(Repertoire, a(B - Rep), a(B) - a(B - Rep) + 1)
End Function

Conclusion :


Voir le ZIP pour une démonstration. J'attend vos commentaires.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_Dany3
Messages postés
13
Date d'inscription
mercredi 26 juin 2002
Statut
Membre
Dernière intervention
26 juin 2003

9 mars 2003 à 23:33
Mettre le module ModuleChemin.bas dans votre projet. Puis voir dans le démo pour chaque commande que vous désirez. Votre chemin complet doit-être dans le label1 pour le démo, c'est à vous de voir pour votre projet.
Paneric2
Messages postés
1
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
7 mars 2003

7 mars 2003 à 10:04
Bonjour,
je suis heureux de trouver une routine ou module qui m'évite d'extraire le nom de fichier.
Ta routine est très bien documentée.
je souhaiterais l'inserer dans mon code.
Quelles sont les modalités?
Merci de ta réponse.
cs_Dany3
Messages postés
13
Date d'inscription
mercredi 26 juin 2002
Statut
Membre
Dernière intervention
26 juin 2003

26 juin 2002 à 15:05
La methode 'Split()' sert seulement pout le contrôle DBGrid d'apres ce que j'en sais. Si t'es prêt a refaire ma routine ne te gêne surtout pas Processus car si y a mieux je suis toujours prenneur.
cs_processus
Messages postés
360
Date d'inscription
vendredi 24 août 2001
Statut
Membre
Dernière intervention
9 juillet 2008
3
26 juin 2002 à 11:30
T'aurais pu utiliser la méthode 'Split()' pour énumérer tes chemins...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.