Capturer l'arborescence de la base de registre

Description

C'est un code source qui permet d'enregistrer dans un TXT la structure de l'arborescence du registre, avec une possible réimportation du fichier TXT car il y a des tabulations-espaces qui conservent les profondeurs. Contrairement à la mise en oeuvre peu évidente, le principe est tout simple: y'a de la récurrence et c'est inévitable.

La code principal se trouve dans une unité à part. La variable "TBLS" est un tableau avec une quinzaine de case, chacune contenant un TStringList. Pour moi, la profondeur maximale trouvée est de 14, et en plus en donne le nom.

Chaque case de "TBLS" référence une profondeur du registre à un endroit donné, où la case N dépend des N-1 précédentes. Le programme construit donc toutes les combinaisons possibles à l'aide d'une récurrence, ce qui donne au final l'arborescence tant désirée.

L'arborescence ":A\B\C\" sera mémorisée "TBLS[0]=A; TBLS[1]=B; TBLS[2]=C". Mais il se peut que la clé B\ contienne en plus de C\ une sous-clé D\. Mais à cause de l'unicité des cases de TBLS, on ne peut pas mémoriser C\ et D\ en même temps. C'est en faisant défiler tous les sous-dossiers d'un dossier qu'on arrive à mémoriser l'arborescence, écrite en live dans un fichier. C'est pourquoi, toutes les fonctions trimbalent un "var F:file" dans leur paramètre. Mais çe n'est pas gênant.

Donc, on voit qu'on fait défiler toutes les cases de TBLS. Mais il faut aussi pouvoir se repérer dans le registre. A force d'ouvrir et de fermer les clés, on se perd. Et un TStringList n'informe pas sur l'adresse en cours... C'est là qu'intervient la variable "RegPath". A chaque case de "TBLS" correspond le nom d'une clé. Pour retrouver le chemin pour une case N de "TBLS", il suffit de recombiner les N-1 cases de "RegPath" et d'y concaténer l'item X de "TBLS". Ainsi, on peut ouvrir des clés et en fermer.

Une implémentation gérant une progression du processus est disponible.

Bref, bref... Ca marche vraiment excellent, et tout a été testé avec succès. On pourra bien sûr, si on souhaite, ajouter la fonction qui ajoute les valeurs contenues dans chaque clés. Mais cela n'a pas été le but de ce projet.

Conclusion :


Vous pouvez toujours aller voir http://altert.family.free.fr/

Codes Sources

A voir également

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.