mercredi 9 novembre 2011

Séance #3 - applications

Parées de toutes les commandes que nous avions apprises jusqu'ici, nous voici en direction de notre premier exercice du projet: la création d'un tableau regroupant les URLs récupérées.

Cet exercice consiste à améliorer le script d'origine étudié en cours et se compose de plusieurs étapes:
A] Insérer une nouvelle colonne pour constituer une colonne de numérotation des URLs.
B] Établir un lien vers les pages de chacune de nos URLs.
C] Modifier le script pour traiter plusieurs fichiers d'URLs et pour construire en sortie plusieurs tableaux dans le même fichier.
 A] Numérotation des URLs
Concrètement, numéroter les URLs, ça veut dire écrire "1" dans la première cellule de la première ligne, à côté de la première URL, puis écrire "2" dans la première cellule de la deuxième ligne, à côté de la deuxième URL etc. Bref, un exercice manuel beaucoup trop fastidieux mais, heureusement pour nous, facilement automatisé en trois étapes:
  1. Créer une variable qui contiendra les chiffres servant à la numérotation: i=1;
  2. Créer une cellule à chaque ligne: <tr><td>$i</td><td>$nom</td></tr>
  3. Incrémenter la variable dans la boucle déjà établie: i=`expr $i + 1`; (dans la boucle for)
Si les deux premières étapes découlent naturellement du cours, ce n'est pas le cas pour la troisième, qui, elle, a nécessité quelques recherches sur internet. En effet, après avoir essayé diverses méthodes connues (incrémentation par i++ ou encore i=i+1 ou i=$i+1) dont aucune ne fonctionnait, nous nous sommes résignées à nous documenter. La commande expr que nous avons trouvée sert en réalité à évaluer des expressions, ici arithmétique puisque l'incrémentation est une addition avec pour deuxième argument 1. La valeur de l'évaluation est alors retournée et assignée à la variable i grâce aux antiquotes ``.


B] Liens hypertexte
Pour cet étape, il s'agit de ne pas afficher uniquement les urls, mais d'en faire des liens hypertextes cliquables qui vont directement aux pages indiquées par les urls. On utilise pour cela la balise HTML <a href "url.html">url.html</a>.


C] Modification du script pour traiter plusieurs fichiers d'URLS
La solution que nous avons adoptée est la suivante:
  1. Créer une deuxième variable qui va contenir le lien vers le deuxième fichier
  2. Créer une deuxième boucle for pour générer automatiquement un deuxième tableau sur le modèle du premier.
Voici élaboré pour cet exercice, ainsi que son résultat.

Problème: si cette méthode fonctionne pour deux fichiers d'URLs, elle ne permet cependant pas de traiter moins de deux fichiers, ou plus. Voici donc le script retravaillé après avoir vu la correction mise en ligne, suivi de la page html générée par ce script: 
 
Avec l'assignation du chemin vers le répertoire contenant les URLs à la variable et avec la création d'une boucle générant un tableau entier, dans laquelle on a laissé celle qui génère chaque ligne des tableaux, il est maintenant possible de traiter autant de fichiers qu'il est nécessaire.

/!\ Le codage de la page html a été ajusté manuellement, le ° étant un caractère posant le même problème que les accents dans un des articles précédents.

EDIT: problème d'encodage et de décodage réglé! Il faut juste vérifier systématiquement que l'on a bien à la fois un script écrit en utf-8 (soit en vérifiant avec "Enregistrer sous", soit en convertissant le fichier avec la commande iconv) ET la balise <meta /> correctement copiée tapée qui précise au navigateur qu'il est judicieux de lire la page en utf-8. La première condition est inutile sans la seconde, et vice-versa...!

Aucun commentaire:

Enregistrer un commentaire