IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Défi


Sujet :

C

  1. #61
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    pour les submissions (non parce que j'ai refait mon truc et j'ai divisé par 4 le temps de parcour d'une page !)? comment cela se passe t-il?
    et pourquoi je m'appelle philipe?

    ce qui serait bien aussi, ce serait un moyen pour nous de tester les resultats de notre prog sans devoir te l'envoyer ... histoire de tweak unpeu
    click my www
    ............|___
    ...................\
    .................._|_
    ..................\ /
    ..................."

  2. #62
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Il faut supporter les cas "très" (trop ?) bizarres et être adaptif le plus possible style, parser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // \t -> tabulation
     
    < a...
    <\ta...
    <\t\t\t \ta hReF= \t \t""...
    Ou alors tout sera bien formaté ?

  3. #63
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Il n'y a pas de caractere blanc entre le < et le nom de l'element..
    Sinon, comment veux tu que le navigateur (laxiste) fasse la difference entre le signe inferieur et l'ouverture d'une balise?
    Le seul moyen qu'il a c'est de regarder si le nom de l'element correspond à un element du dtd

  4. #64
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Dépend comment on parse
    Même avec "< \t \tA", on peut savoir que c'est un lien

  5. #65
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    chez moi le < dans le texte est codé &lt; ou %3C. donc je suppose que ça ne pose pas de problemes (c'est surtout que je gere deja le cas de l'espace; tab; saut de ligne entre le < et le a ... )
    click my www
    ............|___
    ...................\
    .................._|_
    ..................\ /
    ..................."

  6. #66
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Bein fais une page html test, je te garantis que le "< a" ou "<\ta" ne sera pas considéré comme une balise ouvrante par le navigateur, car comme il est laxiste, il autorise qu'on mette des < et des > pour autre chose que les balises. Si par contre, ya du texte collé au "<" alors ça sera un debut de balise.

  7. #67
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Ok ok je te crois, mais nôtre parseur peu être différent des divers butineurs non ?
    Cela dépend des règles du contest.

  8. #68
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    On pourrait discuter pendant 2 mois sans réussir à satifaire tout le monde: un va dire blanc, l' autre noir, et il y aura toujours quelqu'un pour dire jaune, gris ou vert.

    anarchie != démocratie.

    Le but est bien de comparer des algorithmes, correct? Alors on va partir sur une base simple puisque l' idée n'est pas de réécrire Internet Explorer ou Google mais bien de comparer ce qui peut l' être.

    Pour les questions internet aller voir dans le forum webmasters

    Donc on reste sur la page de bookmarks firefox. Elle ne contient que du 'A HREF' et chacun peut en moduler la taille sans problème. Je ne reviendrai pas là-dessus.

  9. #69
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    ok

    Mais par contre, je me pose une question sur les résultats.

    Déjà, a ton droit aux variables globale ?
    (Car j’utilise des variables globales )

    Sur un aussi petit fichier, cela va être serré serré les scores.... non ?

  10. #70
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    La j'oscille dans la partie non mesurable de temps...

    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void StartQuantify()
    {
    	begin_quantify=clock();
    }
     
    void StopQuantifyWindows(char *_string)
    {
    	char t_temp[255];
    	printf("\n\n%s: %f ms\n",_string,((clock()-begin_quantify)/(float)CLOCKS_PER_SEC)*1000);
    }
    Utilisé comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	StartQuantify();
    	Parse();
    	StopQuantifyWindows("time: ");
    J'oscille entre 0 et 15 ms.....

    Sous NT je crois qu'on ne peut mesurer en deçà de 10-15ms

    Et sur 486 liens, avec sortie console, - de 200 ms, sans sortie console entre 0 et 15 ms....

    Donc si une personne arrive à optimiser la partie affichage dans la console, elle gagne...?

  11. #71
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    justement, pour eviter ces ennuis avec la partie affichage ...
    on redirige le tout sur /dev/null (je sais pas comment on fait sur windows et autres ... me demandez pas !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ebola@gentoo ~/src $ time ./html-parse-v2 < wblnks.html > /dev/null
     
    real    0m0.044s
    user    0m0.044s
    sys     0m0.000s
    wblnks.html pese tout de meme 713K et contiens 10 000 liens (dixit mon parser)

    avec l'affichage on y perd enormement (on regarde le user on avait dis :p)
    real 0m0.263s
    user 0m0.048s
    sys 0m0.048s

    -a moins que j'ai mal compris et que les essais se font sur un autre fichier?-
    click my www
    ............|___
    ...................\
    .................._|_
    ..................\ /
    ..................."

  12. #72
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Lunixinclar, toi qui organise , pour la mesure sous Windows, que peut t'on faire ?

    Redirection de la sortie vers un fichier ?

  13. #73
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489

  14. #74
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Lunixinclar
    Manque le tiret avant les options.

    Lancer une console NON BASH (DASH par exemple)
    Pourquoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [d_schris@fool.internal.doubleclick.net tmp]$ time --help
    bash: --help: command not found
     
    real	0m0.003s
    user	0m0.000s
    sys	0m0.000s
    [d_schris@fool.internal.doubleclick.net tmp]$ `which time` --help
    Usage: /usr/bin/time [-apvV] [-f format] [-o file] [--append] [--verbose]
           [--portability] [--format=format] [--output=file] [--version]
           [--help] command [arg...]
    [d_schris@fool.internal.doubleclick.net tmp]$
    # II Mesure du process complet avec la commande time (*NIX seulement!)
    Mais on peut ruser. A noter que la commande time de cygwin utilise la fonction getrusage() implémentée dans cygwin-X.dll (X dépendant de la version) et que cette dernière utilise (indirectement puisque c'est fill_rusage() qui est intéressante) la fonction GetProcessTimes(), non mentionnée dans l'article, de l'API win32 (cf. "./winsup/cygwin/resource.cc" dans http://cygwin.cict.fr/release/cygwin...-2-src.tar.bz2).

    Bonne nuit
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  15. #75
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    J'ai aussi le droit de jouer ? (j'ai fait mon petit prog hier soir avec les exigences formulées, à qui il faut l'envoyer ?).

    Sinon, si cela doit rester dans le cadre de la bibliothèque standard C, que viennent faire les mesures de temps avec des fonctions dépendantes de systèmes ? (Surtout que pour exemple, sur système Windows, la fonction GetProcessTimes() n'est pas disponible et certains ont peut-être encore des vieux dinosaures. Est-ce un critère important, ou alors j'ai mal compris et cela ne concerne que les test de performance personnelles pour soi ? Ce qui en vérité ne sert pas à grand chose : si l'on veut comparer tous les sources pour une plate-forme donnée, il faut tous les compiler avec le même compilateur, les mêmes options, sur la même plate-forme, puis les exécuter chacun à leur tour dans le même contexte. Et encore, la même chose pourrait être reproduite sur plusieurs plates-formes, ce ne seraient peut-être pas les mêmes programmes qui seraient les plus performants, d'abord parce que le compilateur d'une plate-forme à l'autre peut changer et aussi parce qu'il est difficile d'assurer les correspondances d'options de compilation entre compilateurs.

    Le fait de parser correctement me semble déjà être un critère suffisant suivant les exigences formulées.

    A+

  16. #76
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Foobar1329
    J'ai aussi le droit de jouer ?
    Oui. Mets ton code en PJ à ton message ou donne une URL où il peut être récupéré.

    Pour le reste (mesures, etc) : Lunixinclar gère. Donc : du calme / pas de panique.

    (et pense aux sauts de ligne pour aérer ton texte)
    Un problème bien exposé
    est, pour moitié, solutionné. / La connaissance s'accroît quand on la partage, pas quand on l'impose. / La violence est le langage des faibles.

  17. #77
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Citation Envoyé par David.Schris
    Oui. Mets ton code en PJ à ton message ou donne une URL où il peut être récupéré.

    Pour le reste (mesures, etc) : Lunixinclar gère. Donc : du calme / pas de panique.
    OK, le voici (format Unix).

    Fonctionnement :
    - Par lecture vers stdin et sortie vers stdout par défaut.
    - Accessoirement, un fichier d'entrée et de sortie peuvent être utilisés
    - une macro nommé INLINEDISPLAY permet de choisir le mode de sortie (écriture directe vers le flux de sortie si différent de 0, ou alors parsing/stockage entrées + affichage si =0)

    Limitations :
    - URL limitées à 512 caractères (tronqué)
    - Dans le cadre d'un parsing/stockage avant affichage, il est possible d'avoir un problème d'allocation de mémoire si le nombre d'URI est vraiment important (pas de plantage cependant, mais rien ne sera stocké et affiché).

    Citation Envoyé par David.Schris
    (et pense aux sauts de ligne pour aérer ton texte)
    Hmm, même avec des sauts de ligne, cela commence à être cryptique pour un débutant.

    A+
    Fichiers attachés Fichiers attachés

  18. #78
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    Salut les amis,
    C'est ouvert à tous les programmeurs C


    Besoin d'un coup de main. Merci d'avance.
    Il s'agit d'écrire une appli console en C ANSI. Voici le plan. On a un fichier ASCII qui est structuré ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      //Auteur:aaa
      //Plateforme:bbb
      //Compilateur/version:ccc/ddd
     
      int main() ...
      etc ...
    Oui c'est un fichier .c dont les premières lignes sont des commentaires qui contiennent des informations. L'objectif est d'écrire un prog qui va ouvrir ce fichier pour en extraire les informations et le nombre de lignes. Voici un proto:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    int main(int argc, char **argv)
    {
      if (!argv[1]) { puts("Usage: ./prepa <FICHIER.C>"); exit(0); }
     
      // ouvrir fichier
     
      // lire les 3 premières lignes
      // tolower() et  trouver le ':' de chaque ligne
      // extraire ce qui est à sa droite
     
      //identifier le nombre de lignes du fichier: nblignes
      //fermer fichier
     
      //envoyer vers la sortie standard une chaîne du type:
      //   aaa|bbb|ccc|ddd|nblignes
     
      exit(0);
    }
    Facile hein? Le prog sera copyright vous-même, et utilisé pour l'arbitrage du défi.
    Pour être précis il sera employé pour la préparation des programmes en vue de leur mesure de performances afin de présenter les résultats finaux.
    Si vous voulez écrire ce prog, annoncez-vous pour éviter que plusieurs ne fassent la même chose en même temps.
    Sans réponse dans 48 heures je commencerai son écriture.

    Le pourquoi du comment.
    Par souci de commodité, un ensemble d'outils va être utilisé pour compiler/mesurer/présenter les résultats.
    En gros on part d'un dossier plein de fichiers C, on lance la moulinette et on obtient une jolie page HTML.
    Ca va faire économiser aux organisateurs beaucoup de temps et de travail à la main, tout en permettant d'accepter un grand nombre de participants!
    Et pour celà il faudra que les sources des participants:
    1) indiquent en commentaires l' auteur/plateforme etc. voir plus haut
    2) ne fournir qu'un seul fichier, avec l' extension .c

  19. #79
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par Lunixinclar
    Salut les amis,
    C'est ouvert à tous les programmeurs C


    Besoin d'un coup de main. Merci d'avance.
    Il s'agit d'écrire une appli console en C ANSI. Voici le plan. On a un fichier ASCII qui est structuré ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      //Auteur:aaa
      //Plateforme:bbb
      //Compilateur/version:ccc/ddd
     
      int main() ...
      etc ...
    Oui c'est un fichier .c dont les premières lignes sont des commentaires qui contiennent des informations. L'objectif est d'écrire un prog qui va ouvrir ce fichier pour en extraire les informations et le nombre de lignes. Voici un proto:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    int main(int argc, char **argv)
    {
      if (!argv[1]) { puts("Usage: ./prepa <FICHIER.C>"); exit(0); }
     
      // ouvrir fichier
     
      // lire les 3 premières lignes
      // tolower() et  trouver le ':' de chaque ligne
      // extraire ce qui est à sa droite
     
      //identifier le nombre de lignes du fichier: nblignes
      //fermer fichier
     
      //envoyer vers la sortie standard une chaîne du type:
      //   aaa|bbb|ccc|ddd|nblignes
     
      exit(0);
    }
    Facile hein? Le prog sera copyright vous-même, et utilisé pour l'arbitrage du défi.
    Pour être précis il sera employé pour la préparation des programmes en vue de leur mesure de performances afin de présenter les résultats finaux.
    Si vous voulez écrire ce prog, annoncez-vous pour éviter que plusieurs ne fassent la même chose en même temps.
    Sans réponse dans 48 heures je commencerai son écriture.

    Le pourquoi du comment.
    Par souci de commodité, un ensemble d'outils va être utilisé pour compiler/mesurer/présenter les résultats.
    En gros on part d'un dossier plein de fichiers C, on lance la moulinette et on obtient une jolie page HTML.
    Ca va faire économiser aux organisateurs beaucoup de temps et de travail à la main, tout en permettant d'accepter un grand nombre de participants!
    Et pour celà il faudra que les sources des participants:
    1) indiquent en commentaires l' auteur/plateforme etc. voir plus haut
    2) ne fournir qu'un seul fichier, avec l' extension .c

    OK, je peux faire ça, pour dans 15-30 min.

    A+

  20. #80
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    prepa.pl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    #! /usr/bin/perl
    use strict;
    use warnings;
     
    my ($auteur, $plateforme, $compilateur, $version);
    my $last;
     
    while( <> ){
        if( $last and $last ne $ARGV ){
            no warnings "uninitialized";
            print "$auteur|$plateforme|$compilateur|$version|",($.-1),"\n";
            ($auteur, $plateforme, $compilateur, $version) = ();
            $. = 1;
        }
     
        s/^\s+|\s+$//g;
     
        if( !$auteur and m{// \s* auteur \s* : \s* (.+)$}xi ){
            $auteur = $1;
        }
        elsif( !$plateforme and m{// \s* plateforme \s* : \s* (.+)$}xi ){
            $plateforme = $1;
        }
        elsif( !$compilateur and !$version and
                m{// \s* compilateur / version \s* : \s* (.+) / (.+)$}xi ){
            $compilateur = $1;
            $version = $2;
        }
     
        $last = $ARGV;
    }
     
    {
        no warnings "uninitialized";
        print "$auteur|$plateforme|$compilateur|$version|$.\n";
    }
     
    __END__
    Ce code est un peu plus souple que ce que tu avais demandé :
    Il suffit de mettre n'importe où dans le document et dans n'importe quel ordre les commentairs indiquant l'auteur, la plateforme et le compilateur/version (la casse n'a pas d'importance, seule la première occurence de chacun de ces commentaires compte, on peut mettre des espaces autour du ":" ou avant le commentaire).
    Ca s'utilise comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    prepa.pl fichier.c fichier2.c ...
    Et ça renvoie une liste (une ligne par fichier) au format demandé.

    --
    Jedaï

Discussions similaires

  1. Défi Septembre 2004
    Par grishka dans le forum XSL/XSLT/XPATH
    Réponses: 30
    Dernier message: 26/12/2005, 17h37
  2. [défi n°1] limite de javascript en calcul?
    Par javatwister dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 20/08/2005, 15h02
  3. Somme totale... Défi !
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 04/08/2005, 21h03
  4. Défi
    Par ti-ben dans le forum Algorithmes et structures de données
    Réponses: 16
    Dernier message: 03/02/2005, 06h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo