Tableau stockant une arborescence virtuellement infinie
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
11 mai 2005 à 11:47
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
23 mai 2005 à 11:58
Salut a tous,
j'ai besoin d'avis...j'essaye de reflechir a ca tout seul dans mon
coin, mais bon, il ne fait pas beau ici a Nuremberg, c'est le milieu de
la semaine, je ne dors pas assez...bref, j'ai du mal ;-)
Mettons que je veuille stocker une arborescence de repertoires dans un
tableau. Et je veux evidemment que ce tableau soit reutilisable sans se
gaver d'aspirines a chaque fois que l'on veut en faire quelquechose...
Pour l'instant, la methode que j'ai choisie, si elle est efficace, me pose un probleme philosophique d'optimisation ;-)
Je stocke TOUS les fichiers et repertoires trouves dans un premier
niveau de ce tableau associatif : $tableau[mon_chemin_courant_lu]
Puis je teste si ce que je rencontre dans ce chemin lu est un repertoire ou un fichier.
A ce moment, je le stocke soit dans
$tableau[mon_chemin_courant_lu]['dir'][]=nom du repertoire
ou
$tableau[mon_chemin_courant_lu]['file'][]=nom du fichier
Ca marche, et on peut ainsi facilement reafficher l'arborescence correctement moyennant quelques appels recursifs.
Mais du coup, j'ai des doublons...
mon_chemin_courant_lu est forcement egal a quelques chose soit dans
$tableau[mon_chemin_courant_lu]['dir'][] soit dans
$tableau[mon_chemin_courant_lu]['file'][]
Et ca me gene! J'ai l'impression de faire du gaspillage... ;-)
Donc si quelqu'un a une idee AUTRE que de stocker reellement
l'arborescence telle quelle. AUTRE, parce que dans ce cas, je me
retrouverais avec un tableau avec beaucoup beaucoup trop de dimensions
possibles, et c'est ingerable...
J'ai aussi pense a ne stocker que le chemin dans un tableau simple
associatif, mais dans ce cas, au reaffichage, je dois relire le
repertoire pour tester si c'est un fichier, un repertoire, et de plus
cela complique pas mal pour l'arborescence (il faudrait parser la clef
associative a chaque fois). Et pour d'eventuels traitement sur
uniquement certains repertoires, par exemple...(tri par exemple).
GAME2OVR
Messages postés40Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention12 juin 2005 22 mai 2005 à 21:26
bas je n'ais pas tout compris, mais on peut suivre ton principe, tu
fait un tableau la clé est le nom du dossier ou du fichier et la valeur
et une information sur le fichier exemple
$dossier['mondossier']['image.jpg'] contiendra comme valeur le type de
la variable, si c'est un dossier ou un fichier, sa taille etc...
c'est plus simple comme ça chaque nouvelle colonne du tableau est un dossier ou un fichier...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 23 mai 2005 à 11:58
Hello,
ben oui, c'est la methode dont je parle lol ? Je stocke le chemin complet, le nom du fichier ou repertoire, la seule difference entre ta methode et la mienne est que j'utilise le type (repertoire, fichier) comme clef, et non pas comme valeur.
Mais ton systeme a l'avantage de pouvoir effectivement stocker plus simplement d'autres infos si je veux...donc, je vais me pencher dessus :-) (je n'avais pas du tout ca dans l'idee, stocker la taille, le type mime etc...mais pourquoi pas!)