
| auteur : Stoyak |
- Pour vous éviter quelques petits soucis!!
Vous travaillez sous MAC OS X, vous développez, je peux donc supposer que vous utilisez le Terminal, qui est un système Unix!
Voilà donc un des petits soucis que j'ai rencontré, et que je voudrai vous épargner.
Je parsais un fichier ".txt" généré à partir d'Excel Microsoft (pour ne pas le nommer) avec un script Perl. Seulement voilà, le système ne reconnaissait pas les lignes : le retour chariot était remplacé par un caractère ^M. Autant vous dire que mon petit script était alors totalement inefficace!! Et pourquoi? Parce que le codage de fin de ligne diffère selon le système utilisé! Les éditeurs de texte qui ne supportent pas les retours chariots affichent ce ^M superflu!
Voilà une petite méthode pour s'en débarrasser! Ajouter cette procédure à tous vos scripts, et vous n'aurez plus de problème d'incompatibilité de fichiers Unix/Windows!
#!/usr/bin/perl -w
use strict;
use Carp;
# declaration des fichiers
# mon fichier à traiter
my $fichier_initial = "mon_fichier.txt";
# le fichier modifie que je cree
my $fichier_modifie = "fichier_modifie.txt";
# appel de la procedure: - en entree: mon fichier à traiter
#- en sortie: mon fichier modifie
&traite_fichier($fichier_initial, $fichier_modifie);
# procedure qui permet de rendre les fichiers compatibles unix/windows
sub traite_fichier {
# passage des parametres $fichier <- $fichier_initial
#$fichier_modif <- $fichier_modifie
my ($fichier, $fichier_modif) = @_;
# declaration du tableau @tab
my @tab;
# lecture du fichier initial
open (LECTURE, $fichier) || die ("pb d'ouverture du fichier $fichier $! ");
while (my $ligne = <LECTURE>){
chomp ($ligne);
# remplacement des retours chariots!
$ligne =~ s/\r\n?/\n/g;
push (@tab,$ligne);
}
close (LECTURE);
# ecriture du fichier modifie
open (ECRITURE, ">$fichier_modif") || die ("pb d'ecriture dans le fichier $fichier_modif $! ");
foreach my $case (@tab){
print ECRITURE "$case\n";
}
close (ECRITURE);
} |
|
Consultez les autres F.A.Q's  
|
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2005 Developpez Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.