Automatiser une correction pour 500 pages HTML

Automatiser une correction pour 500 pages HTML - Perl - Programmation

Marsh Posté le 22-06-2006 à 09:16:00    

Bonjour à tous.
J'ai fait une recherche en vain, peut-être que j'avais pas mis les bons mot-clés. Je vous explique mon problème. J'ai une application codée en Perl/Html.  
Seulement la personne ayant fait ça ne l'avait rendu compatible que pour Internet Explorer. J'ai trouvé ce qu'il fallait changer mais mon problème c'est qu'il faut que je corrige ça pour un peu plus de 500 pages HTML. Ayant Perl à disposition, je me suis dit que je pourrais l'utiliser. Voici comment ça se présente:
On répertoire contenant des sous répertoires qui eux-même contiennent plusieurs pages Html dont celle que je veux modifier.
Il faut donc que j'ouvre chaque sous répertoire (opendir je suppose) mais après je coince un peu. Sachant que la page Html de chaque répertoire à un nom bien particulier je suppose qu'il faut le sélectionner et le stocker dans une variable tableau. Et après je pense savoir faire une fois mon fichier stocké dans mon tableau. C'est juste que tout se mélange un peu.
 
Bein sûr je vous demande pas de me donner tout le code, mais juste quelques lignes ou des idées qui me mettraient sur la voie seraient vraiment bienvenues.  
 
Merci d'avance à tous.

Reply

Marsh Posté le 22-06-2006 à 09:16:00   

Reply

Marsh Posté le 22-06-2006 à 09:43:55    

utilise File::Find pour parcourire tes repertoires, et modifi chaque fichier au fur et à mesure

Reply

Marsh Posté le 22-06-2006 à 11:03:50    

si c'est un truc qui ne doit servir qu'une fois pour modifier tes fichiers (et que ça n'a pas besoin d'être très propre), tu peux faire un truc du genre :
> find . -name "fichier.html" | xargs modif.pl
Comme ça tu récupères directement la liste des fichiers en arguments sur la ligne de commande.
 
C'est pas ce qu'il y a de mieux (la solution de pospos est beaucoup plus propre), mais ça peut p-ê te faire gagner du temps.


---------------
TriScale innov
Reply

Marsh Posté le 22-06-2006 à 11:47:38    

Malheureusement non je dois faire un truc propre. Mais là je suis parti sur l'idée de pospos.
 
juste une petite question :
imaginons que mon fichier s'appelle A[numérodurépertoire] soit pour le premier fichier A1.html dans le répertoire 1. J'ai le droit après pour le nom de fichier à trouver de faire un truc du genre:  
my $dir_i= $File::Find::dir;
 
puis pour le nom de fichier que je veux, dans ma fonction wanted: $_= A.$dir_i;
 
C'est possible qu'il y ait un truc que j'ai pas du tout saisi, le peu de perl que j'ai fais remonte à pas mal de temps.
 
Merci de votre attention.

Message cité 1 fois
Message édité par Pablo Escrobarbe le 22-06-2006 à 11:48:01
Reply

Marsh Posté le 23-06-2006 à 09:28:35    

Quelqu'un aurait un site en anglais ou en français très détaillé sur ce mod?
J'ai regardé sur le site cpan, mais j'avoue ne pas tout saisir.

Reply

Marsh Posté le 23-06-2006 à 13:21:42    

j'ai oublié de préciser que je suis sous windows, je sais pas si ça change quelquechose.

Reply

Marsh Posté le 23-06-2006 à 13:48:34    

rien de plus detaillé que le synopsis (tres complet) du module sur CPAN. Tu peux aussi regarder les tests qui vont avec

Reply

Marsh Posté le 23-06-2006 à 15:01:08    

c'est le \&wanted que je vois pas trop.

Reply

Marsh Posté le 23-06-2006 à 15:29:55    

c'est une refercne vers une sub qui s'appelle wanted, et qui sera appelée a chaque fichié trouvé. Il ne reste plus qu'a la definir.

Reply

Marsh Posté le 23-06-2006 à 15:40:49    

oui en postant j'ai relu pour la 6eme fois et je crois avoir compris. Merci de confirmer  :whistle:

Reply

Marsh Posté le 23-06-2006 à 15:40:49   

Reply

Marsh Posté le 04-07-2006 à 12:20:45    

Pablo Escrobarbe a écrit :

Malheureusement non je dois faire un truc propre. Mais là je suis parti sur l'idée de pospos.
 
juste une petite question :
imaginons que mon fichier s'appelle A[numérodurépertoire] soit pour le premier fichier A1.html dans le répertoire 1. J'ai le droit après pour le nom de fichier à trouver de faire un truc du genre:  
my $dir_i= $File::Find::dir;
 
puis pour le nom de fichier que je veux, dans ma fonction wanted: $_= A.$dir_i;
 
C'est possible qu'il y ait un truc que j'ai pas du tout saisi, le peu de perl que j'ai fais remonte à pas mal de temps.
 
Merci de votre attention.


au fait j'avais pas eu de réponse pour, c'est possible ou pas?

Reply

Marsh Posté le 11-07-2006 à 11:30:35    

Bon j'ai pas mal réfléchi et c'est clair que j'ai du mal avec perl, mais j'ai peut-être trouver juste besoin de confirmation.
Pour sélectionner un fichier nommé A, qui se trouve dans plusieurs sous répertoires différents je dois faire ça?

Code :
  1. use File::Find;
  2. finddepth(\&wanted, @maindirectorie_to_search);
  3. sub wanted
  4. {
  5. if ($_ == 'A') {
  6.    sysopen (HF, $_, O_RDWR); #je comprend là le Handle_File ce qu'il signifie
  7.    #après je pense appeler une sous fonction qui remplace les mauvaises chaines de caractères.
  8.    }
  9. }


 
Si quelqu'un à la patience de m'aider je lui serais reconnaissant, parce là je patauge pas mal avec le perl.

Reply

Marsh Posté le 11-07-2006 à 14:50:18    

Ma question est tant désespérante que ça ou les gens sont partis en vacances?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed