Bonjour,
Mon but est simple, je dois parcourir un fichier X si dans ce fichier il y a @[nom_de_fichier] je dois aller dedans et regarder si il y a d'autre @[nom_de_fihcier] puis continuer la lecture dans les fichiers d'avant... etc... etc...
Et je dois écrire dans un fichier texte tout ce que j'ai parcouru.
Exemple de fichiers en entrées :
En sortie je dois avoir tout le récapitulatif:
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 Fichier X : blabla bloblo @toto blabla blabla @tutu Fichier toto : blabla blabla @yoyo blabla Fichier yoyo : blablabla blabla Fichier tutu : blabla blabla
J'ai commencé ce bout de code mais je ne sais pas trop comment faire la suite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Fichier X niveau 1 => Fichier toto niveau 2 => Fichier yoyo niveau 3 => Fichier tutu niveau 2
Peut être faut il stocker le $1 pour faire un open dessus dans une fonction ? recursive ?
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 # !usr/bin/perl -w use strict; use warnings; my $cpt = 0; # Compteur my @tab =([0]); # Tableau my $NomFichier ; # Récupération nom de fichier my $tab_nb = 0; # Compteur my $j = 0; # Variable compteur pour écriture du fichier my $y = 0; # Variable compteur pour écriture du fichier ####################################################################################################### # Début du traitement et ouverture fichiers # ####################################################################################################### print "\n-------------------------------------------------------\n"; print "|--------------- Debut du traitement ---------------|\n"; print "-------------------------------------------------------\n"; open FICHIER, '<', "Init.sql" or die("E/S : $!\n"); open ECRIRE, '>', "verif.txt" or die("Erreur de création de verif.txt"); ####################################################################################################### # Tableau # ####################################################################################################### $tab[0][0]="Fichier : "; #tant qu'il y a des lignes dans mon fichiers while ( my $ligne = <FICHIER>) { $cpt++; if ( $ligne =~ m/^^@\s*(.+)/ ){ $tab_nb++; $NomFichier = $1; $tab[$tab_nb][0]=$NomFichier; open FICHIER, '<', $NomFichier or die("E/S : $!\n"); if ( $ligne =~ m/^^@\s*(.+)/ ){ print $1, "\n"; } } ####################################################################################################### # End Of File, verifie que toutes les lignes du fichier sont traités # ####################################################################################################### if (eof) { print "-------------------------------------------------------\n"; print "|--------------- Fin du fichier courant --------------|\n"; print "-------------------------------------------------------\n"; } } ####################################################################################################### # Ecriture # ####################################################################################################### for ($y=0; $y<=$tab_nb; $y++){ for ($j=0; $j<1; $j++){ print ECRIRE $tab[$y][$j], "\ "; } print ECRIRE "\n"; } ####################################################################################################### # Compteur # ####################################################################################################### print "-------------------------------------------------------\n"; print "|---- parserAction.pl a parcouru ", $cpt, " lignes ----|\n"; print "-------------------------------------------------------\n"; ####################################################################################################### # Fin du traitement et Fermeture Fichiers # ####################################################################################################### print "-------------------------------------------------------\n"; print "|---------------- Fin du traitement ----------------|\n"; print "-------------------------------------------------------\n"; close FICHIER; close ECRIRE;
Je bloque vraiment j'ai besoin de vous !
Partager