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

Langage Perl Discussion :

optimisation de script


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut optimisation de script
    Bonjour

    Je souhaiterai découper un fichier qui est sur une seule ligne tous les 160 caractères avec un retour chariot.

    Mais avant de commencer cela, il faut que je supprime tous les retours chariots de mon fichier. Comment puis je faire sans avoir à exploiter des fichiers temporaires.

    Car j'ai d'abord ouvert mon fichier ENTREE et j'ai supprimé les retours chariots
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #($Ligne) =~ s/[\n]//g;
    pour écrire dans un fichier temporaire et seulement après rouvrir ce même fichier pour réaliser mon découpage tous les 160 caractères. Mais cela me semble lourd !!


    Le script ci-dessous est plus simple, mais ne réalise que le découpage ! comment puis je placer la suppression des retours chariots.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    open (ENTREE, "<$FicEntree") || die "Ouverture impossible du fichier $FicEntree: $!";	
    open (SORTIE, ">$FicSortie") || die "Ouverture impossible du fichier FicSortie: $!";
     
    			while (read ENTREE, my $Ligne, 160) 
    			{
    				print SORTIE $Ligne, "\n";
    				print ">$Ligne, \n<";
    			}
     
    close (SORTIE);
    close (ENTREE);

  2. #2
    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
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Un script uniligne comme celui-ci remplacera dans ton fichier (en fait, derrière la scène, il crée un fichier temporaire et fait le renommage, mais tu n'a pas à t'en préoccuper, c'est transparent pour toi):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -pi.bak -e 's/\n//g' nom_fichier.txt
    Ton fichier d'origine sera renommé en .bak, et ton fichier nom_fichier.txt n'aura plus de retours à la ligne.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    A travers un script ça donne quoi ?

  4. #4
    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
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    En fait, à la réflexion, il y a plus simple. Modifie ton script comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    open my $ENTREE, "<", $FicEntree or die "Ouverture impossible du fichier $FicEntree: $!";	
    open my $SORTIE, ">", $FicSortie or die "Ouverture impossible du fichier $FicSortie: $!";
     
    while (read $ENTREE, my $Ligne, 160)  {
         $Ligne =~ s/\n/ /g; # commence par remplacer les retours à la ligne existants par des espaces
         print $SORTIE $Ligne, "\n";
         print ">$Ligne, \n<";
    }
    close $SORTIE;
    close $ENTREE;

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. Optimiser vos scripts
    Par djibril dans le forum Langage
    Réponses: 33
    Dernier message: 11/06/2009, 16h10
  3. [Oracle] Optimisation de script
    Par johnkro dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 12/07/2006, 10h33
  4. [Débutant] Accélérer et optimiser ses scripts PHP
    Par Metallic-84s dans le forum Langage
    Réponses: 6
    Dernier message: 24/03/2006, 12h37
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33

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