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 :

Comment remplacer les tabulations par des espaces ?


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Developer
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Developer

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Comment remplacer les tabulations par des espaces ?
    Bonjour à tous,

    Comment peut-on remplacer les caractères de tabulation '\t' par des espaces en Perl ? Ceci bien sûr en insérant le bon nombre d'espaces c.a.d le caractère suivant un caractère de tabulation doit tomber sur une colonne multiple de 8.

    Merci d'avance,
    Bruno

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    C'est étrange ce que tu demandes. Je ne connais aucune fonction permettant cela directement. Ce que je ferais à ta place, c'est de calculer la longueur de ta chaîne précédant ta tabulation et d'en déduire le nombre d'espaces à insérer.

    Jasmine,
    -- Jasmine --

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s/\A ([^\t]*) \t/$1.' ' x (8 - (length($1) % 8) )/gxe;
    --
    Jedaï

  5. #5
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Je ne savais pas que cette fonction était capable de compter le nombre d'espaces manquant. Je pensais que cela ne faisait que remplacer une tabulation par un seul espace. ^^ on en apprend tous les jours.
    J'aime bien votre forum, il est très instructif.

    Jasmine,
    -- Jasmine --

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Jasmine80 Voir le message
    Je ne savais pas que cette fonction était capable de compter le nombre d'espaces manquant.
    C'est probablement parce que ce n'est pas le cas
    Mon code fait l'affaire par contre.

    --
    Jedaï

  7. #7
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Je ne sais pas j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    my $chaine = "aa    aaa      aaa";
    my $chaine2 = "aaaaa    aaaaa   aaa";
    print "$chaine\n";
    print "$chaine2\n\n";
    $chaine =~ s/\t/ /g;
    print "$chaine\n";
    print "$chaine2\n";
    J'ai mis des tabulations pour espacer mes a et le nombre d'espaces étaient bien respectés dans le print après l'ExpReg ... j'en ai donc conclu trop vite que cela fonctionnait.
    Mais je me suis rendue compte que :
    dans l'éditeur mes caractères de tabulation sont remplacés directement par des espaces. Dès sa création $chaine contient des espaces et non la tabulation que j'ai pourtant utilisée pour l'écrire. Ce qui est différent des éditeurs de textes comme Word dans lesquels les tabulations restent des tabulations.
    Enfin voila, désolée d'avoir fait ce précédent commentaire.


    Jasmine,
    -- Jasmine --

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    j'avais pas compris la question.
    En effet mon code ne fait que remplacer les tabulations par des espaces.
    Il ne fait absolument pas de comptage ou autre

Discussions similaires

  1. [CR 2008] remplacer les 'crlf' par des espaces dans un texte de "type" RTF
    Par digitfree dans le forum Formules
    Réponses: 5
    Dernier message: 02/04/2013, 11h18
  2. Remplacer les tabulations par des espaces
    Par Henry22 dans le forum Débuter
    Réponses: 2
    Dernier message: 21/05/2012, 09h08
  3. [DOM] Remplacer les <br> par des espaces
    Par Sammuel dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/12/2009, 15h16
  4. Remplacer des Tabulations par des espaces dans une RichTextBox
    Par skar.theparadiz dans le forum Windows Forms
    Réponses: 11
    Dernier message: 11/07/2008, 14h43
  5. remplacer les virgules par des tabulations
    Par cartographe dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 08/11/2007, 11h27

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