Bonjour,
M'inspirant de l'exemple, je visualise le fichier ZIP dans une table
Serait il possible de faire un affichage comme le fait WinRAR ?
Avoir un distinguo entre la sauvegarde du répertoire et la sauvegarde de fichier
Cordialement
SC
Bonjour,
M'inspirant de l'exemple, je visualise le fichier ZIP dans une table
Serait il possible de faire un affichage comme le fait WinRAR ?
Avoir un distinguo entre la sauvegarde du répertoire et la sauvegarde de fichier
Cordialement
SC
Bonjour,
Tu peux éventuellement utiliser un champ table hiérarchique.
L'arbre sera rempli après avoir remplacé "\" par "TAB" fonction Remplace. L'indice dans l'arbre sera celui du fichier dans l'archive.
Ajout.
Je vient de bricoler une ébauche de collection de procédures qui pourra t'être utile
Initialisation
Procédure principale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //L'utilistation d'un tableau de chaines regroupant les différents nuds évite une boucle TableListeFils ou TableRécupèreFils gtabArbo est tableau de chaine
Procédures annexes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // Résumé : Ajoute une branche à une table hiérarchique // Syntaxe : //TableHAjouteBranche (<chTableHierachique> est champ, <sRacine> est chaîne, <sNomBranche> est chaîne, <sSéparateur> est chaîne [, ...]) // // Paramètres : // chTableHierachique (champ) : Nom de la table hiérarchique // sRacine (chaîne ANSI) : Nom de la racine // sNomBranche (chaîne ANSI) : Nom de la branche // sSéparateur (chaîne ANSI) : Séparateur utilisé dans le nom de la branche // <*> : Valeurs éventuelle des autres colonnes PROCÉDURE TableHAjouteBranche(chTableHierachique est Champ,sRacine est chaîne,sNombranche est une chaîne,sSéparateur est une chaîne,*) chTableHierachique..AffichageActif=Faux //Désactive le ré affichage lors d'un ajout pour optimiser le traitement TableHAfficheArbo(chTableHierachique,sRacine,sNombranche,sSéparateur) TableHAfficheFeuille(chTableHierachique,sRacine,sNombranche,sSéparateur,MesParamètres[5 À]) TableEnrouleTout(chTableHierachique) chTableHierachique..AffichageActif=Vrai //Retour à la normale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 // Résumé : Affiche les nuds d'une branche complète dans une table hiérarchique // Syntaxe : //TableHAfficheArbo (<chTableHierachique> est champ, <sRacine> est chaîne, <sNombranche> est chaîne [, <sSéparateur> est chaîne]) // // Paramètres : // chTableHierachique (champ) : Nom du champ table hiérarchique // sRacine (chaîne ANSI) : Valeur de la racine // sNombranche (chaîne ANSI) : Valeur de la branche que l'on souhaite ajouter à la racine // sSéparateur (chaîne ANSI - valeur par défaut="<RC>") : Séparateur des nuds utilisé dans sNomBranche PROCÉDURE PRIVÉE TableHAfficheArbo(chTableHierachique est Champ,sRacine est chaîne,sNomBranche est chaîne,sSéparateur est chaîne=TAB) nNbNoeuds est entier sPère est chaîne sFils est chaîne sSousBranche est chaîne nNbNoeuds=ChaîneOccurrence(sNomBranche,sSéparateur) //Le nombre de noeuds correspond au nombre de séparateur, la dernière valeur est la feuille sPère=sRacine POUR nNoBranche=1 _À_ nNbNoeuds sFils=ExtraitChaîne(sNombranche,nNoBranche,sSéparateur) sSousBranche=ChaîneConstruit("%1%2%3",sPère,TAB,sFils) //On "développe" la branche SI TableauCherche(gtabArbo,tcLinéairePremier,sSousBranche)=-1 ALORS //Le noeud n'existe pas, il faut l'ajouter TableAjouteFils(chTableHierachique,sPère,sFils) //On ajoute le chemin du noeud dans le tableau pour pouvoir en contrôler l'existence ultérieurement. TableauAjoute(gtabArbo,sSousBranche) FIN sPère=sSousBranche FINJe te laisse ajouter les CAS ERREUR et CAS EXCEPTION
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 // Résumé : Ajoute la feuille à l'arborescence // Syntaxe : //TableHAfficheFeuille (<chTableHierachique> est champ, <sRacine> est chaîne, <sNomBranche> est chaîne [, <sSéparateur> est chaîne [, ...]]) // // Paramètres : // chTableHierachique (champ) : Nom de la table hiérarchique // sRacine (chaîne ANSI) : Valeur de la racine de l'arborescence // sNomBranche (chaîne ANSI) : Chemin complet de la branche // sSéparateur (chaîne ANSI - valeur par défaut="<TAB>") : Séparateur dans sNomBranche // <*> : Valeurs éventuelles des autres colonnes // Valeur de retour : // Aucune // PROCÉDURE PRIVÉE TableHAfficheFeuille(chTableHierachique est Champ,sRacine est chaîne,sNomBranche est chaîne,sSéparateur est chaîne =TAB,*) sFils est chaîne sPère est une chaîne nLigneFeuille est un entier sFils=ExtraitChaîne(sNomBranche,1,sSéparateur,DepuisFin) sPère=Gauche(sNomBranche,Taille(sNomBranche)-(Taille(sFils)+1)) SI sSéparateur<>TAB ALORS //On formate sPère sPère=Remplace(sPère,sSéparateur,TAB) FIN sPère=ChaîneConstruit("%1%2%3",sRacine,TAB,sPère) nLigneFeuille=TableAjouteFils(chTableHierachique,sPère,sFils,MesParamètres[5 À]) //Au passage, on récupère le n° de la ligne chTableHierachique[nLigneFeuille]..ImageEnroulée=Null //On efface l'icône
Il va de soit qu'il est préférable d'utiliser des fonctions plutôt que des procédures... Mais ce n'est qu'une ébauche
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager