Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Programmation et administration système
Programmation et administration système Vos questions sur les scripts d'administration système, création de compte utilisateur, socket, fork, ping, etc...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/03/2012, 12h37   #1
CACI27
Membre à l'essai
 
Homme Jean
Inscription : 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.
CACI27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2012, 14h59   #2
CACI27
Membre à l'essai
 
Homme Jean
Inscription : 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
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.
CACI27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2012, 11h17   #3
djibril
Responsable Perl et Outils

 
Avatar de djibril
 
Homme
Inscription : avril 2004
Messages : 13 818
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 13 818
Points : 31 520
Points : 31 520
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 !
djibril est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h04.


 
 
 
 
Partenaires

Hébergement Web