; ------------------------------------------------------- ; ; Representation de fichiers et repertoires avec ; des frames ; ; F. Balmas 15/1/98 ; ; ------------------------------------------------------- ; les repertoires (newF 'repertoires 'frame '( (rep-parent root (+ (nconc (getS val 'sous-rep) (list i))) ) (sous-rep - (- (list '*>))) (fichiers - (- (list '*>))) (nb-fichiers 0 (+ (putS i 'taille-moy '-))) (taille-tot 0 (+ (putS i 'taille-moy '-))) (taille-moy 0 (- (/ (getS i 'taille-tot) (getS i 'nb-fichiers)))) )) ; les fichiers (newF 'fichiers 'frame '( (repertoire - (+ (nconc (getS val 'fichiers) (list i)))) (taille - (+ (progn (setq -rep- (getS i 'repertoire)) (putS -rep- 'nb-fichiers (+ 1 (getS -rep- 'nb-fichiers))) (putS -rep- 'taille-tot (+ val (getS -rep- 'taille-tot))) ))) )) ; pour creer les repertoires et fichiers (de creer-root (rep) (newI 'repertoires rep) rep) (de creer-repertoire (rep par) (newI 'repertoires rep) (putS rep 'rep-parent par) rep) (de creer-fichier (fich rep tail) (newI 'fichiers fich) (putS fich 'repertoire rep) (putS fich 'taille tail) fich) ; pour afficher les statistiques (de stat (r) (stat-rep r) (mapc (cdr (getS r 'sous-rep)) 'stat) ) (de stat-rep (r) (print r) (mapc (cdr (getS r 'fichiers)) '(lambda (f) (prin1 (getS f 'nom)) (prin1 (getS f 'taille)) (terpri) )) (prin1 'Nb-fichiers) (prin1 '=) (prin1 (getS r 'nb-fichiers)) (prin1 'Taille-totale) (prin1 '=) (prin1 (getS r 'taille-tot)) (prin1 'Taille-moyenne) (prin1 '=) (prin1 (getS r 'taille-moy)) (terpri)(terpri) ) ; ----------------------------------------- ; tests ; ----------------------------------------- ; creation de l'arborescence (creer-root 'R) (creer-repertoire 'R1 'R) (creer-repertoire 'R2 'R) (creer-repertoire 'R3 'R) (creer-repertoire 'R4 'R1) (creer-repertoire 'R5 'R1) (creer-repertoire 'R6 'R5) (creer-fichier 'f12 'R 12) (creer-fichier 'f25 'R 25) (creer-fichier 'f14 'R 14) (creer-fichier 'f5 'R1 5) (creer-fichier 'f40 'R1 40) (creer-fichier 'f2 'R3 2) (creer-fichier 'f6 'R3 6) (creer-fichier 'f18 'R5 18) (creer-fichier 'f27 'R5 27) (creer-fichier 'f51 'R6 51) ; traces d'execution ? (stat 'R) R f12 12 f25 25 f14 14 Nb-fichiers : 3 Taille totale : 51 Taille moyenne : 17 R1 f5 5 f40 40 Nb-fichiers : 2 Taille totale : 45 Taille moyenne : 22 R4 Nb-fichiers : 0 Taille totale : 0 Taille moyenne : 0 R5 f18 18 f27 27 Nb-fichiers : 2 Taille totale : 45 Taille moyenne : 22 R6 f51 51 Nb-fichiers : 1 Taille totale : 51 Taille moyenne : 51 R2 Nb-fichiers : 0 Taille totale : 0 Taille moyenne : 0 R3 f2 2 f6 6 Nb-fichiers : 2 Taille totale : 8 Taille moyenne : 4 = nil ; ----------------------------------------------------------