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

Programmation et administration système Perl Discussion :

infos sur un ou des fichiers


Sujet :

Programmation et administration système Perl

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

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    et que fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(-e $fichier){
    	my @file_stat = stat($fichier);
    	my $mtime = $file_stat[9];
    	map {print "$_, \t";} @file_stat;
    }
    else{
    	die "LE FICHIER N'EXISTE PAS !!!!";
    }
    -- Jasmine --

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut réponse
    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
     
     #!/usr/bin/perl
    use strict;
    use warnings;
    use POSIX qw(strftime);
    use POSIX qw(localtime);
     
     
    my $fichier = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\testi.pl";
    my ($repertoire,$nom_fichier) = $fichier =~ /(.+[\/\\])([^\/\\]+)$/;
    my $chemin = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\infos.txt";
    my @file_stat = stat($fichier);
    map {print "$_, \t";} @file_stat;
     
    my $mtime = $file_stat[9];
     
    print @file_stat;
    print $mtime;
     
    #open (FH, ">>$chemin") || die $!;
    #print FH "Date|Caisse|Nom fichier|Datefichier|Heurefichier|\n";
    #print FH "$fichier\n";
    #print FH "$mtime";
     
    #close (FH);
    if(-e $fichier){
    	my @file_stat = stat($fichier);
    	my $mtime = $file_stat[9];
    	map {print "$_, \t";} @file_stat;
    }
    else{
    	die "LE FICHIER N'EXISTE PAS !!!!";
    }
    ça donne ça

    Z:\>perl "D:\Documents and Settings\ROUSSELA\Desktop\essai1.pl"
    3, 0, 33206, 1, 0, 0, 3, 279, 1218452615,
    1217929317, 1218452615, , , 30332061003279121845261512179293
    17121845261512179293173, 0, 33206, 1, 0, 0, 3,
    279, 1218452615, 1217929317, 1218452615, , ,

    donc c'est mieux

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut ouaiiiiiiiiiiiiiiiiiiiis
    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
     
    #!/usr/bin/perl
    use strict;
    use warnings;
    use POSIX qw(strftime);
    use POSIX qw(localtime);
     
     
     
    my $fichier = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\testi.pl";
    my ($repertoire,$nom_fichier) = $fichier =~ /(.+[\/\\])([^\/\\]+)$/;
    my $chemin = "D:\\Documents and Settings\\ROUSSELA\\Desktop\\infos.txt";
    my @file_stat = stat($fichier);
    map {print "$_, \t";} @file_stat;
     
    my $mtime = $file_stat[9];
     
    print @file_stat;
    print $mtime;
     
    my $toto= localtime($mtime);
     
    open (FH, ">>$chemin") || die $!;
    print FH "Date|Caisse|Nom fichier|Datefichier|Heurefichier|\n";
    print FH "$fichier\n";
    print FH "$mtime\n";
    print FH "$toto";
     
    close (FH);
    if(-e $fichier){
    	my @file_stat = stat($fichier);
    	my $mtime = $file_stat[9];
    	map {print "$_, \t";} @file_stat;
    }
    else{
    	die "LE FICHIER N'EXISTE PAS !!!!";
    }
    ça donne ça dans mon fichier plat

    Date|Caisse|Nom fichier|Datefichier|Heurefichier|
    D:\Documents and Settings\ROUSSELA\Desktop\testi.pl
    1217929317
    Tue Aug 5 11:41:57 2008


    merci merci, smak smak

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

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Tant mieux que tu aies réussi ... quel était exactement le problème?


    Pour ton expression régulière

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier =~ /(.+[\/\\])([^\/\\]+)$/;
    A ta place j'écrirais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $fichier =~ '^(.*)\+(\w+\.\w+)$';
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier =~ m(^(.*)\+(\w+\.\w+)$);
    $1 = tout ce qui précède
    \+ = séparé par un ou plusieurs backslash
    $2 = lettre.lettre (pour fichier.extension)

    Le fait d'utiliser des ' ' ou des ( ) fait que tu ne dois plus écrire de backslash devant tes slash et backslash.

    Enfin, c'est une question de goûts.
    -- Jasmine --

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut suite
    alors j'ai vu 2 erreurs de ma part

    l'utilisation du use FILE::stat
    et surtout j'allais chercher le fichier au mauvais endroit donc il ne le trouvait pas
    donc pas d'infos


    maintenant j'ai ma date en sortie: tue aug 5 11:47:23 2008

    je voudrais faire une sorte de "explode" comme en php et réagencer ma date ainsi

    05/08/2008
    et l'heure à part
    11:47:23

    on utilise un split un substr?

    j'ai fait un split et ça marche

    mais je vois pas comment je transformer
    aug 5 2008
    en 05/08/2008

    ne faut il pas remplacer les espace par des /

  6. #26
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut n'importe nawak
    en fait je suis biiiiiiiip

    j'ai pu faire de Aug 5 2008 un passage en 5 Aug 2008
    et j'ai même mis mes / (vives les variables!)

    des fois je pose des questions illogiques au possible

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

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    mais je vois pas comment je transformer
    aug 5 2008
    en 05/08/2008
    Il existe probablement un module sur le CPAN.

    j'ai pu faire de Aug 5 2008 un passage en 5 Aug 2008
    et j'ai même mis mes / (vives les variables!)
    Tant mieux donc tu as maintenant 5/Aug/2008?


    Si tu ne trouves pas un module approprié sur le CPAN, tu peux toujours utiliser
    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
    #!/usr/bin/perl
     
    use strict;
     
    my $date = 'aug 5 2008';
     
    my %h_correspond = (
    	aug => '08',
    );
     
    if ($date =~ /(\w+) (\d+) (\d+)/){
    	my $date_modif = join ('/', (sprintf("%02d", $2), $h_correspond{$1}, $3));
    }
     
     
     
    # =>  05/08/2008
    -- Jasmine --

  8. #28
    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
    Il serait nettement plus simple d'utiliser la sortie type tableau de localtime plutôt que de parser sa sortie scalaire (laquelle est destinée à être utilisée telle quelle quand on n'a pas de grosses exigences sur le format de sa date). Ou même utiliser directement strftime() sur la sortie de localtime, ça serait nettement plus propre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my @time_stats = localtime($mtime);
    use POSIX qw(strftime);
    print strftime( "%d/%m/%y %T" ,@time_stats);
    --
    Jedaï

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 69
    Points
    69
    Par défaut résolu
    merci Jedaï c'est beaucoup mieux

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Besoin d'info sur le graphisme des logos
    Par vallica dans le forum Imagerie
    Réponses: 9
    Dernier message: 17/07/2006, 20h00
  2. [Histoire] Cherche infos sur l'évolution des SGBD
    Par jack554 dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 12/10/2005, 17h00
  3. Un peu de lumière sur l'arborescence des fichiers de Linux
    Par Noki dans le forum Administration système
    Réponses: 6
    Dernier message: 07/04/2004, 16h16
  4. Probleme sur le Fields des fichiers Xmlgram
    Par Sandrine75 dans le forum XMLRAD
    Réponses: 4
    Dernier message: 20/03/2003, 17h09

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