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

Langage Perl Discussion :

comprehension d'un code existant


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut comprehension d'un code existant
    Bonjour,

    Je dois adapter un programme perl en Java, mais je ne connais pas du tout le perl.

    A force d'analyser le code, je commence a comprendre un peu comment ca fonctionne, mais il me reste quelques parties incomprehensibles. Si quelqu'un pouvait m'aider a y voir plus clair ce serait vraiment sympa.

    J'ai la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf(`date '+%j' -d $t[0]`);
    Si $t[0] = 07/03/2008, par exemple, j'obtiens 185 comme resultat. D'ou ca sort?
    que veut dire `date '+%j' -d ?

    Merci d'avance

    PS : si quelqu'un a des astuces pour convertir du perl en java, ca m'interresse.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut
    J'ai fini par trouver
    En fait 185 correspond au jour de l'annee (3/07/2008)

    Je n'ai toujours pas compris le fonctionnement parr contre.
    Quelle est la difference entre ` et ' ?

    Je suis en train de lire des cours, mais pour le moment, je n'ai rien vu qui parle de ca.

  3. #3
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut a mon avis
    je pense que ca signifie que tu ecris la date qui est dans la variable $t[0] au lieu d'ecrire la date actuelle, ce que tu ferais en ecrivante juste `date`

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157

  5. #5
    Membre éclairé
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Par défaut
    Bonjour CyberSlan,

    Citation Envoyé par CyberSlan Voir le message
    J'ai la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf(`date '+%j' -d $t[0]`);
    Si $t[0] = 07/03/2008, par exemple, j'obtiens 185 comme resultat. D'ou ca sort?
    que veut dire `date '+%j' -d ?
    En essayant de tester cette ligne de code, l'invite de commande s'est planté(je précise que je suis sur win)
    t'es sûr que cette ligne envoie bien un résultat?
    j'ai cherché sur le net sur le %j utilisé dans ce code, mais je n'ai trouvé aucun article qui parle de ça

    "si $[0]=07/03/2008...." et si tu testes cette ligne seulement en remplaçant cette variable $[0] par une autre variable ou par une valeur directement, ça t'envoie toujours le même résultat?
    Je pense que tu fera mieux d'envoyer la totalité du code pour qu'on puisse avoir une vision plus clair de ce que tu cherches à faire, on pourra surement te proposer d'autre solutions plus interessantes que celle que t'essaies de traduire...


    Cordialement

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par défaut
    C'est bon, j'ai reussi a transferer ca en Java, en fait, il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date.get(Calendar.DAY_OF_YEAR)
    , ou date est de type Calendar, et contient la date souhaitee.

    En essayant de tester cette ligne de code, l'invite de commande s'est planté(je précise que je suis sur win)
    t'es sûr que cette ligne envoie bien un résultat?
    Oui, j'ai bien un resultat, et le %j n'apparait nul part ailleur dans ce code.
    Je pense qu'il doit etre la dedans :
    use POSIX qw(strftime);
    Merci pour toutes vos reponses, malgre que ma question n'etait peut etre pas tres claire.
    Je mettrai plus de code la prochaine fois, pour que ce soit plus comprehensible.

  7. #7
    Membre expérimenté Avatar de CKLN00
    Homme Profil pro
    Bioinformaticien Java/Perl
    Inscrit en
    Avril 2008
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Bioinformaticien Java/Perl
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 210
    Par défaut
    noramle que sous Win le code plante et la différence entre ' et ` est énorme : les '' sont des "simple quotes" qui n'interpréte rien (saufe le \ et le \' je crois) et les `` "back quotes" permet de lancer une commande système et retourne la sortie de la commande

  8. #8
    Expert confirmé
    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
    Par défaut
    La façon propre de faire est d'utiliser un bon module de dates (type DateTime), à défaut, il faut utiliser localtime() et time(), ainsi que strftime().

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faire un projet avec un code existant
    Par mm2405 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/11/2008, 11h38
  2. Code existant flêche + noms = planning
    Par Bayard dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/10/2008, 14h23
  3. VS2008: créer project web application à partir de code existant
    Par julien.63 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 01/10/2008, 13h52
  4. Petite aide sur la comprehension d'un code
    Par Pauli dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2007, 20h24
  5. Réponses: 4
    Dernier message: 24/04/2006, 14h07

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