Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre à l'essai
    Homme Profil pro Jean
    Inscrit en
    octobre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2011
    Messages : 22
    Points : 24
    Points
    24

    Par défaut Perl et les accents français!?!?

    Bonjour à tous,

    Je m'occupe d'un petit parc informatique d'une vaintaine d'employés.
    J'ai installé sur chaque poste (XP/Vista/7), un logiciel qui fait des sauvegardes quotidiennes, mais localement seulement.

    Je veux ouvrir un répertoire en partage, sur un serveur de fichier et, m'assurer d'une copie de chaques sauvegardes, de chaques postes.

    J'ai créer un script Perl qui, entre autres, fait une listes des fichiers qui sont dans le répertoire d:/Backup et les copie, sur le partage distant.

    Le problème est que si un nom de fichier contient un accent (à, ç, é, etc.), l'accent est remplacé par un symbole quelconque (i.e. é devient Ü).

    Par trace, je vois que les accents ont déjà été modifié au moment de la lecture du répertoire; avant même qu'ils soient copiés:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    opendir hDossierALire, $dir || die("Impossible d'ouvrir le dossier...");
     
    print "\n\nListe A : \n\n";
     
    foreach $nomFichier (readdir hDossierALire) 
    {
        print $nomFichier."\n" if $nomFichier =~ m/zip$/i;      # Les accents sont changés.
        push (@liste_A, $nomFichier) if $nomFichier =~ m/zip$/i;   
    }
     
    close (hDossierALire);
    Merci pour votre aide et vos suggestions.

  2. #2
    Membre à l'essai
    Homme Profil pro Jean
    Inscrit en
    octobre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2011
    Messages : 22
    Points : 24
    Points
    24

    Par défaut

    Bonjour à la communauté,

    À force de poursuivre mon scripte et faire des tests, je me suis rendu compte que les caractères ne change qu'à l'affichage.

    Lorsque la copie des fichiers s'éffectue, les accents sont correctement transposés, de l'original au fichier copié.

    Par contre, j'ai eu beaucoup de misère avec le fait que les fichiers de backups, contenaient des espaces et des points-virgules.

    J'ai pu corrigé le format des noms de fichiers pour qu'il ne contiennent plus d'espace ou de point-virgule.

    J'ai dû, par contre, faire un scripte pour renommer sur les postes, les fichiers de backups déjà créer.

    MAIS : Le scripte renomme les fichiers sans problème avec les accents.

    Scripte pour renommer les fichiers :

    Code :
    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
     
    # Change un fichier : Backup 2012-04-10 16;18;13 (Différentielle.)
    # en un fichier        : Backup_2012-04-10_16h18m13s(Différentielle.)
     
    $dir = "C:\\repertoire";
    opendir hDossierALire, $dir || die("Impossible d'ouvrir le dossier...");
     
    foreach $nomFichier (readdir hDossierALire) 
    {
        push (@liste_A, $nomFichier) if $nomFichier =~ m/zip$/i;   
    }
     
    close (hDossierALire); 
     
    foreach $nomFichier (@liste_A) 
    {
        $nomFichierA = $nomFichier;    
        $nomFichier =~ s/\s+/_/g;
        $nomFichier =~ s/\;/h/i;
        $nomFichier =~ s/\;/m/i;
        $nomFichier =~ s/_\(/s\(/i;
        $old = "C:\\repertoire\\".$nomFichierA;
        $new = "C:\\repertoire\\".$nomFichier;
        rename($old, $new);
    }
    Bref, quand j'aurai besoin d'écrire un scripte qui devra afficher des caractères accentuées à l'écran, j'aurai alors un problème mais, pour l'instant, Perl fait mon bonheur.

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    15 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 15 890
    Points : 483 778
    Points
    483 778

    Par défaut

    Voici un lien important à lire : http://perl.developpez.com/faq/perl/...ListerFichiers

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •