Valid XHTML 1.0!                  

 

  Projet de programmation
  en Licence professionnelle
  année 2010/2011
 
   Opérations en mode «bloc»
   sur fichiers textes en PHP

 

Présentation du projet


 

Le but du projet est de réaliser, à l'aide d'une page Web écrite en PHP ou en ligne de commandes, toujours avec PHP, des manipulations sur les colonnes d'un ou plusieurs fichiers de données.

Voici un exemple de tel fichier :

   Janvier 217 628 oui oui 254
   Février 1548 2534 non oui 628
   Mars 1221 437 oui non 1231

Une première action pourrait être de reformater les données (même longueur pour les chaines, unité sous unité, dizaine sous dizaine...), de façon à les rendre lisible. On obtiendrait ainsi :

   Janvier  217  628 oui oui  254
   Février 1548 2534 non oui  628
   Mars    1221  437 oui non 1231

Une autre action pourrait être de remplacer des valeurs caractères comme "oui", "non" par des codes numériques. Ainsi, le fichier précédent deviendrait (avec des choix non explicités ici)

   Janvier  217  628 1 0  254
   Février 1548 2534 2 0  628
   Mars    1221  437 1 1 1231

On pourrait aussi imaginer de numéroter les lignes avec des identifiants, ce qui donnerait :

   V0001 Janvier  217  628 1 0  254
   V0002 Février 1548 2534 2 0  628
   V0003 Mars    1221  437 1 1 1231

En fait, n'importe quelle action "raisonnable" qui évite de faire des copier/coller ou des manipulations répétitives au clavier est la bienvenue. Le projet viendra implémenter une page Web qui demandera un fichier de données, un fichier de manipulations (ou qui utilisera ces noms de fichier en ligne de commandes) et qui effectuera les manipulations demandées. Le ou les fichiers de résultats seront alors disponibles sur la page dans des "textarea" et sous forme de fichiers cachés derrière des liens cliquables.

Pour les actions, on pourra s'inspirer du programme gnumdata fourni à l'adresse

http://forge.info.univ-angers.fr/~gh/mmm/wgnumd/gnumdata.htm

et dont les fichiers de documentation (comme la carte de référence) sont gnumdata.pdf et gnumdref.pdf.

Comme exemple de sortie, on pourra s'inspirer du mode export du site LEAPDB, à l'adresse export (cliquer sur le bouton export sur fond vert clair).

Il est très fortement recommandé de commencer par écrire un «squelette» de programme qui fonctionne en ligne de commande et par formulaire, par exemple avec la seule action de numérotage des lignes.

Les étudiant(e)s impliqué(e)s dans ce projet devront rendre compte hebdomadairement des avancées de leurs travaux.

 

Exemple de manipulations assez simples mais très utiles à implémenter


 

Supprimer une colonne, supprimer un groupe de colonnes ; on pourra inventer des expressions comme C2-C5 pour indiquer qu'il s'agit des colonnes C2, C3, C4 et C5.

Ajouter une colonne par conversion (par exemple de pouces en cm).

Trier les lignes en fonction de choix sur les colonnes.

Fournir la liste numérotée des mots utilisés dans une colonne avec leur fréquence.

Remplacer des noms de groupe par leur numéro avec production de la liste numérotée des groupes.

Vérifier si les données correspondent à la définition des variables.

 

Exemple de manipulations non triviales à implémenter


 

Remplacement via des lignes précédentes

On dispose d'un fichier avec des "trous" qui doivent être remplacés par la valeur de la ligne précédente. Par exemple
   2007 Janvier  217  628 1 0  254
        Février 1548 2534 2    628
        Mars    1221  437 1   1231
   2008 Janvier  217  628 1    254
        Février 1548 2534 2    628
        Mars    1221  437 1 1 1231

doit devenir

   2007 Janvier  217  628 1 0  254
   2007 Février 1548 2534 2 0  628
   2007 Mars    1221  437 1 0 1231
   2008 Janvier  217  628 1 0  254
   2008 Février 1548 2534 2 0  628
   2008 Mars    1221  437 1 1 1231

Mise à jour cohérente de fichiers aprés suppression de colonnes

On dispose d'un fichier .NGR (groupes), d'un fichier .GAL (colonnes) et d'un fichier .DAC (données binaires avec indication de groupe) dans le cadre d'une identification probabiliste. On décide de supprimer le groupe 3 et de retirer la colonne 6. Comment mettre à jour et en concordance les fichiers ?

 

retour gH    Retour à la page principale de   (gH)