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 :

Question date fichier perl.


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Par défaut Question date fichier perl.
    Bonjour à tous,

    J'ai une petite question en perl.

    Je fait la copie d'un fichier txt d'un répertoire à un autre, mais je voudrais au moment de la copie, rajouter la date à la suite du fichier copié.
    Par exemple, je souhaite copier le fichier test.txt, je voudrais qu'une fois copié, il se nomme test_20_11_2014.txt. Il prend la date où il effectue la copie.

    Merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Je te conseille l'usage de la fonction strftime (du module standard POSIX) qui te permet de formater ton nom de fichier destinataire avec des données relative à une date (donnée par la function localtime)

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    perl -MPOSIX=strftime -E 'say strftime "test_%d_%m_%Y", localtime'
    test_20_11_2014

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Par défaut
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();

    my $fichier1 = "C:.../toto.txt";
    my $fichier2 = "C:.../toto_$localtime.txt";



    rename ($fichier1, $fichier2);

    J'ai utitlisé ceci, mais sans effet.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Alors essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    user POSIX qw(strftime);
    my $fichier1 = "C:.../toto.txt";
    my $fichier2 = strftime "C:.../toto_%d_%m_%Y.txt", localtime();
     
    rename ($fichier1, $fichier2);

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tifil Voir le message
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();

    my $fichier1 = "C:.../toto.txt";
    my $fichier2 = "C:.../toto_$localtime.txt";



    rename ($fichier1, $fichier2);

    J'ai utitlisé ceci, mais sans effet.
    Tu utilises une variable $localtime que tu n'as pas initialisée. Si tu avais utilisé les pragmas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    use strict;
    use warnings;
    le compilateur t'aurait prévenu de cette erreur. Il faut utiliser ces deux pragmas pour toute programme de plus d'une ligne.

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 74
    Par défaut
    J'ai essayé mais toujours pas de modif.

  7. #7
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,
    Philou67430 a juste fait une faute de frappe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    user POSIX qw(strftime);
    Son code fonctionne parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/usr/bin/perl
    use strict;
    use warnings;
    use utf8;
     
    use POSIX qw(strftime);
     
    my $fichier1 = "E://_DEV//_Essais//Fichier_1.txt";
    my $fichier2 = strftime "E://_DEV//_Essais//Fichier_1_%d_%m_%Y.txt", localtime();
     
    rename ($fichier1, $fichier2);
    N'oublie pas :
    1 - entre doubles quottes les variables sont évaluées et il est nécessaire d'échapper les caractères "spéciaux" avec un / donc "E://_DEV//_Essais//Fichier_1_%d_%m_%Y.txt" OK
    2 - entre simples quottes les variables ne sont pas évaluées donc 'E:/_DEV/_Essais/Fichier_1_%d_%m_%Y.txt' NOT OK

    De plus lorsque tu écris :
    J'ai essayé mais toujours pas de modif.
    Précise ce que tu as fait, en collant ton code et/ou en ajoutant des images, quitte à les effacer rapidement...
    Ça nous aidera aussi un peu
    Exemple (j'ai un peu triché pour ne pas perdre mon fichier Fichier_1.txt) :

Discussions similaires

  1. probleme de date fichier ftp
    Par eomer212 dans le forum MFC
    Réponses: 5
    Dernier message: 30/09/2005, 10h23
  2. Date fichier image
    Par Aphyo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/08/2005, 23h03
  3. [web] upload fichier perl
    Par lilou0210 dans le forum Web
    Réponses: 3
    Dernier message: 04/11/2004, 08h13
  4. [langage] Question débutant compilation PERL
    Par sebbyoguard dans le forum Langage
    Réponses: 5
    Dernier message: 04/09/2004, 19h39
  5. Réponses: 2
    Dernier message: 19/06/2003, 13h48

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