Soyez le premier à donner votre avis sur cette source.
Vue 13 177 fois - Téléchargée 818 fois
'************************************************************************************** ' .FullPath vs GetFullPath ' 'Programmeur : Egyde (sendoval_fr@yahoo.fr) 'Date de création : 22/02/06 '************************************************************************************** Option Explicit Private m_strParentPath As String Private m_strParentKey As String 'pr l'estimation des performances Public Declare Function GetTickCount Lib "kernel32" () As Long 'pr récupérer le chemin complet d'un noeud, 'on fait appel à la propriété .FullPath 'Note : pour changer le séparateur (ici "/"), voir .PathSeparator du treeview Public Function TVWFullPath(ByRef tSourceNode As Node) As String TVWFullPath = tSourceNode.FullPath TVWFullPath = Mid$(TVWFullPath, 2, Len(TVWFullPath) - 1) & "/" End Function 'pr récupérer le chemin complet d'un noeud, 'on check si le noeud visité n'est pas le fils du père précédemment visité. 'Si c'est le cas, on renvoi le chemin complet en tenant compte de l'information 'précédemment sauvegardée. Si c'est pas le cas, on fait appel à la propriété '.FullPath Public Function TVWGetFullPath(ByRef tSourceNode As Node) As String If tSourceNode.Parent Is Nothing Then ' on est à la racine m_strParentKey = "K0" m_strParentPath = "/" TVWGetFullPath = "/" Else If m_strParentKey <> tSourceNode.Parent.Key Then 'le noeud courant n'est pas au même niveau que le noeud précédent 'on met donc à jour le chemin du père m_strParentKey = tSourceNode.Parent.Key m_strParentPath = TVWFullPath(tSourceNode.Parent) End If 'on concatène au chemin du père le texte du fils TVWGetFullPath = m_strParentPath & tSourceNode.Text & "/" End If End Function
25 févr. 2006 à 09:38
Tu as une autre idée? Je pensais à un retour ByRef plutôt qu'une fonction As String mais j'ai pas réussi à mettre en évidence de différences.
25 févr. 2006 à 09:17
Quand à mettre le fullpath dans la propriété .tag, c'est une bonne idée :) Encore faut-il être prêt à gaspiller l'espace mémoire pour ça ;)
24 févr. 2006 à 21:20
Ce que j'essaie de te dire c'est que ton travail est certe interressant d'un point de vue "artistique" mais qu'il na pas vraiment de sens.
Car on optimise pas un code comme celui la. Quel est l'avantage d'avoir le chemin complet d'un noeud en 0.81224 tick contre 0.84225 ??? Deja si j'ai besoin du chemin complet dans un code critique je me fait mon propre tableau ce qui m'evitera d'appeler des propriete qui sont 15 fois plus gourmande. Et quel est le programmeur qui va ecrire un code critique sur un treeview ???
Bref je prends mon FullPath en 1 ligne et gagne beaucoup plus de temps que de tout recoder dans le pire des cas je fais une premiere passe et je fout mon fullpath dans la prp .tag et la ..... oh bonheur lol
Avant de coder dans tout les sens je me demande toujours si le jeu en vaux la chandelle. Surtout que la recursivité n'a pas que du bon !
@+
23 févr. 2006 à 08:50
22 févr. 2006 à 21:37
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.