Bonjour,
Je dispose d'un fichier d'entrée qui contient des chemins de dossiers par lignes :
Je souhaiterais créer un fichier de sortie qui mette en forme hérarchique le fichier d'entrée de cette forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dossier1/Dossier2/Dossier3 Dossier1/Dossier2/Dossier4 Dossier1/Dossier2/Dossier4/Dossier5 Dossier1/Dossier2/Dossier4/Dossier6
J'ai commencé à coder (pas très optimisé) mais ça ne donne pas ce que je veux mais le principal est la :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 - <folder>Dossier1 - <folder>Dossier2 - <folder>Dossier3 </folder> - <folder>Dossier4 * <folder>Dossier5 </folder> * <folder>Dossier6 </folder> </folder> </folder> - </folder>
Si quelqu'un peut m'aider je lui en serais reconnaissant merci
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42 //Parcours du fichier pour remise en forme $fichier = fopen("fichier_entree.txt", "w" ); //Fichier pour écriture $tableau = file("fichier_sortie.txt"); //Fichier pour lecteure stocké dans un tableau if(is_array($tableau)) //Si la variable $tableau est bien un tableau, on peut continuer { $contenu_fichier = ''; $temp_derniere_colonne = ''; $chemin_sans_dernier_dossier_precedent = ''; foreach($tableau AS $ligne) { $nb_colonnes_tableau = substr_count($ligne,"/") + 1; //Nombre de slash dans la ligne puis + 1 = Nombre de colonnes dans le tableau $tableau = split("/",$ligne); //On récupère le chemin sans le dernier dossier $chemin_sans_dernier_dossier = ''; for ($i=0;$i < $nb_colonnes_tableau-1;$i++) { $chemin_sans_dernier_dossier .= $tableau[$i].'/'; if ($chemin_sans_dernier_dossier == $chemin_sans_dernier_dossier_precedent) { }else{ fputs($fichier,'???'); fputs($fichier,"\n"); } } $num_derniere_colonne = $nb_colonnes_tableau - 1; // On récupère le numéro de la dernière colonne du tableau et -1 car on commence à 0 fputs($fichier,' <folder>'.$tableau[$num_derniere_colonne].''); fputs($fichier,"\n"); fputs($fichier,' </folder>'); fputs($fichier,"\n"); //Vérification que l'avant dernière colonne existe et qu'il n'y en a pas qu'une seule if ($tableau[$num_derniere_colonne] > 1) { $temp_derniere_colonne = $tableau[$num_derniere_colonne-1]; //On stock l'avant dernière colonne dans une variable temporaire pour la comparer par la suite } $chemin_sans_dernier_dossier_precedent = $chemin_sans_dernier_dossier; } } fclose($fichier);![]()
Partager