# mettre en variable les incontournables___
$p_s_s = '<A HREF="lien_ici">précédant</A>
| <A HREF="lien_ici">suivant</A> | <A HREF="index.html">sommaire</A>';
$li = '<LI>';
$lblhtm = '<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 3.2 Final//EN">' . "\n"
. '<HTML>';
$lblhtmo = '</HTML>';
$h_ref = '<H REF="' . "s"
. "$numbrut" . '">' . "$line" . '</H></H3>'
. "\n";
$ancre_in = '<H3><A NAME="'
. "s" . "$numbrut"
. "\><\/A\>";
LABEL_TOP:print "Entrez le nom du fichier
à traiter:\n";
chomp($file
= <STDIN>);
# sortir le path du filename
$road66 = $filename
= $file;
$road66 =~ s/()\/\w+\.\w{3,4}$/$1/i;
$filename =~ s/^.+\/\b()/$1/;
if (-e $file) {
$df = localtime(-C $file);
$crt = "$x\n
Rapport du contenu de $file : $df \n";
print "$crt";
}
else {
print "Erreur, le fichier $file
n\'existe pas\n";
goto LABEL_TOP;
}
# lit le fichier et met son contenu dans une
variable liste
open F, "$file" or die
"Ouverture de $file impossible $!";
@contenu = <F>;
close F or die "Fermeture impossible:
$file $!";
# faire copie pour éviter dégas
(la copie doit avoir un nom propre et/ou un numero particulier)
$copieID = "copie_"
. "$file" . "_$id"
. "\.html";
($copie, $ext) = split(/\./,
$copieID);
($lbl, $id) = split(/_/,
$copie);
while (-e donne_un_nom($copieID))
{
$id++;
donne_un_nom($copieID);
}
open COPF, ">$copieID" or
die "Ouverture de $copieID impossible: $!";
print COPF $lblhtm;
print COPF @contenu;
print COPF $lblhtmo;
close COPF or die "Re_merde
c\'est quoi encore $!";
# definir le fichier tmp en lui donnant un
nom, un num et un rep (/tmp/tmp/):
($copie,
$ext) = split(/\./, $copieID);
($lbl,
$id) = split(/_/, $copie);
while (-e donne_un_nom($copieID))
{
$id++;
donne_un_nom($copieID);
}
$filetmp = '/tmp/tmp/' . "$copieID";
open CT, ">$filetmp" or die
"Ouverture de $filetmp impossible $!";
print COPF $lblhtm;
foreach $line(@contenu)
{
next if ($line =~ /^</);
if ($line =~ /^sommaire\s/i)
{
$line = '<h1><title>'
. "$line" . '</h1></title>';
}
elsif ($line =~ /^\d{1,2}\.\d{1,2}\s/)
{
$lignetitre
= $line; #
au cas ou pourra remplacer la merde plus bas
($numbrut,
$ttchap) = split(/\s/,
$line, 1);
($nump, $nums)= split(/\./, $numbrut);
$i++;
#numero me servant au classement
if ($nums
<= 0) {
$tt_actif_tab
= "$li" . '<H3><A NAME="' . "tab_"
. "$nump" . '"></A><H REF="' . "s_"
. "$nump" . '">' . "$line"
. '</H></H3>' . "\n";
$tt_actif_s
= "$li" . '<H3><A NAME="' . "s_"
. "$nump" . '"></A><H REF="' . "tab_"
. "$nump" . '">' . "$line"
. '</H></H3>' . "\n";
print CT $tt_actif_tab;
push @nwcontenu,
$tt_actif_s;
next;
}
else {
$tt_actift_tab
= "$li\t" . '<H3><A NAME="' . "tab_"
. "$nump" . "$nums"
. '"></A><H REF="' . "s_" . "$nump"
. "$nums" . '">' . "$line" . '</H></H3>'
. "\n";
$tt_actift_s
= "$li" . '<H3><A NAME="' . "s_" . "$nump"
. "$nums" . '"></A><H REF="' . "tab_"
. "$nump" . "$nums"
. '">' . "$line" . '</H></H3>' . "\n";
print CT $tt_actift_tab;
push @nwcontenu,
$tt_actift_s;
next;
}
}
else {
push @nwcontenu,
$line;
}
}
print CT "\n\n";
print CT @nwcontenu;
print CT $lblhtmo;
close CT or die "ca couince
avec le temporaire $!";
# routine pour donner un nom qui ne detruira
pas les autres copies ou l'original
sub donne_un_nom($copieID)
{
my ($copieID)
= @_;
$copieID = "copie_"
. "$file" . "_$id"
. "\.log";
($copie, $ext)
= split(/\./, $copieID);
($lbl, $id) = split(/_/,
$copie);
return $copieID;
}
END;