Exercices niveau Licence

 

Etape N°3

 

Exercice 1

Téléchargez le programme suivant : formatHTML.pl. Modifiez-le de façon à ce qu'il crée, dans le corps de la page, une liste numérotée. Les éléments de cette liste seront les lignes lues sur l'entrée standard (on lira toutes les lignes jusqu'a l'arrivée de fin de fichier sur l'entrée standard, et pour chaque ligne on créera un nouvel item de la liste en sortie). Le programme utilisera la première ligne aussi comme le titre de la page HTML.
Appliquez le programme au fichier p96.fic

Résultat

#!/usr/bin/perl

open (FILE, "p96.fic");
my $titre = <FILE>;
chomp($titre);
chop($titre);
#print $titre;
print "<HTML>\n";

# on écrit l'entête du document html
print "<HEAD><TITLE>$titre</TITLE></HEAD>\n";

# on écrit le corps de la page
print "<BODY>\n";
print "<ol>\n";
#open (FILE, "p96.fic");
print "<li>$titre</li>\n";
while (my $ligne = <FILE>) {
chomp($ligne);
chop($ligne);
print "<li>$ligne</li>\n";
}
close FILE;
print "</ol>\n";
print "</BODY>\n";

# on écrit la fin du fichier html
print "</HTML>\n";

Le fichier exo3.1.html

Autre script possible dans lequel on récupère au préalable toutes les lignes du fichier d'entrée dans une liste:exo3.1.pl

Haut de page

Exercice 2

En utilisant le programme perl qui fournit l'ossature d'une page HTML, vous ferez en sorte qu'il lise deux fichiers (que vous ouvrirez à l'intérieur de votre programme). Vous créerez un tableau qui contiendra autant de lignes qu'il y a de lignes dans les fichiers lus. Chaque ligne du tableau contiendra deux cellules (colonnes) : dans la première cellule de la ligne n du tableau il y aura la ligne n du premier fichier, et dans la deuxième cellule la ligne n du deuxieme fichier. Vous modifierez le programme pour que le tableau contienne une colonne de plus qui sera le numéro de ligne. Vous appliquerez le programme aux versions en français et en anglais de Therèse Desqueyroux (de Francois Mauriac).

Résultat

#!/usr/bin/perl
$titre = "Etape 3 Exercice 2";
#on ouvre les deux fichiers à aligner
open (FILEFR, "desqueyroux.fr");
open (FILEAN, "desqueyroux.ang");
#on crée le fichier de sortie
open (FILEOUT, ">exo3.2.html");
print FILEOUT "<HTML>\n";
# on écrit l'entête
print FILEOUT "<HEAD><TITLE>$titre</TITLE></HEAD>\n";
# on écrit le corps de la page en html
print FILEOUT "<BODY>\n";
#on crée le tableau qui va servir à l'alignement
print FILEOUT "<TABLE>\n";
#parcours du fichier français
while ($ligne = <FILEFR>){
print FILEOUT "<TR>"; #pour démarrer une nouvelle ligne dans le tableau
$compteur++;
print FILEOUT "<TD>$compteur</TD>"; #TD ouvre une cellule du tableau, dans laquelle on insère le numéro de ligne
chomp $ligne;
chop $ligne;
print FILEOUT "<TD>$ligne</TD>"; #écriture de la ligne courante du fichier en français dans une nouvelle cellule
#parcours du fichier anglais
foreach ($line = <FILEAN>){
$compteur2++;
if ($compteur2==$compteur){ #permet d'aligner les bonnes lignes des fichiers français et anglais ensemble
chomp $line;
chop $line;
print FILEOUT "<TD>$line</TD>"; #écriture de la ligne courante du fichier anglais dans une nouvelle cellule
}
}
print FILEOUT "</TR>\n"; #fermeture de la ligne courante du tableau
}
print FILEOUT "</TABLE>\n";
print FILEOUT "</BODY>\n";
# on écrit la fin du fichier html
print FILEOUT "</HTML>\n";

Le fichier exo3.2.html

Pour les mêmes raisons que le premier exercice, autre script possible : exo3.2.pl

< Etape 2 - Etape 4 >

Haut de page