Traitement hiérarchique (1/5) |
Traiter des données classées hiérarchiquement |
|
 |
Le problème soumis est de hiérarchiser des informations, sous forme d'arborescence, mais ce principe de traitement convient à tout problème dont les données sont triées de façon hiérarchique, pour, par exemple, effectuer des sous-totaux.
|
Principe -
En Javascript -
En ASP -
En PHP -
Bonus
Là, il s'agit d'afficher en indentant et en "désindentant" des données stockées en mémoire.
Exemple :
Soient les données à traiter :
- "f1", "e11", "t111"
- "f1", "e11", "t112"
- "f1", "e11", "t113"
- "f1", "e12", "t121"
- "f1", "e12", "t122"
- "f2", "e21", "t211"
- "f2", "e22", "t221"
- "f3", "e31", "t311"
Les résultats à obtenir sont :
| f1 | | |
| | e11 | |
| | | t111 |
| | | t112 |
| | | t113 |
| | e12 | |
| | | t121 |
| | | t122 |
| f2 | | |
| | e21 | |
| | | t211 |
| | | t221 |
| f3 | | |
| | e31 | |
| | | t311 |
|
Comme dans tout traitement hiérarchique, il convient que les données soient triées.
Il faut ensuite tester si l'enregistrement suivant fait partie du même "lot" que le précédent, et ainsi de suite.
Lorsque l'enregistrement n'appartient plus au même "lot", on parle de rupture. Il y a en effet une rupture dans la séquence des enregistrements puisqu'il y a une différence, un intrus qui vient perturber la séquence ;-).
Pour pouvoir comparer l'enregistrement suivant au précédent, il faut sauvegarder les données relatives à l'enregistrement traité, donc passé, puis effectuer la comparaison.
|
DB77 le
11/09/2008 (46 310 hits) |
|
|