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 :

chomp ou chop


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut chomp ou chop
    Bonsoir à tous,

    Je récupere dans un ce fichier le text:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    26
    27
     
    # Francais
     
    # Syntaxe
    auth=Syntaxe: auth <idnick> <mot de passe>
    deauth=Syntaxe: deauth <idnick>
    op=Syntaxe: op <#channel> <nick>
    deop=Syntaxe: deop <#channel> <nick>
    voice=Syntaxe: voice <#channel> <nick>
    devoice=Syntaxe: devoice <#channel> <nick>
    halfop=Syntaxe: halfop <#channel> <nick>
    dehalfop=Syntaxe: dehalfop <#channel> <nick>
    kick=Syntaxe: kick <#channel> <nick> [raison]
    kickban=Syntaxe: kickban <#channel> <nick> [raison]
    ban=Syntaxe: ban <#channel> <nick/host>
    unban=Syntaxe: unban <#channel> <nick/host>
    kill=Syntaxe: kill <nick> [raison]
     
    # Erreur
    noauth=Accés refusé
    noaccess=Aucun accés trouvé pour cet IDnick
    badnick=Votre pseudonyme doit correspondre à IDnick
    badmask=Votre masque ne correspond pas.
    suspend=Votre accés est suspendu
     
    # divers
    authentified=Vous êtes à présent identifié
    de cette maniere:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    sub load_lang
    {
    	my $lang = getconf("langage");
    	my $path = "lang/$lang.lang";
    	open FILE, $path or die "load_lang() erreur: $!";
    	while (my $line = <FILE>)
    	{
    	chomp $line;
            next if $line =~ m/^\s*#|^\s*$/;
            my ($var,$value) = split /\s*=\s*/, $line;
    	$lang{$var} = $value;
    	}
    	close FILE;
    }
    comme vous voyez je chomp le text, le probleme c'est que quand j'essai d'afficher ce text sur le socket il ne veut pas et la cause c'est qu'il faut je chop le text en plus de l'avoir chomp donc au final je ne ferai pas mieux d'utiliser juste chop ? mais si il n'y a pas de séparateurs ca va m'éffacer le dernier caractère du text non ? éclairez moi s'il vous plait

    PS: J'ai éssayé avec juste chop et ca ne fonctionne pas, il faut que je chomp aprés ...

  2. #2
    Expert confirmé
    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
    Par défaut
    Visiblement, tu as un mic-mac quelque part qui fait que tes lignes finissent par "\r\n" ou quelque chose comme ça, généralement ça peut arriver si tu as un fichier texte Windows sur de l'Unix, ou dans certains cas sur le réseau.

    Elimine simplement ces caractères directement :
    Utiliser chomp() deux fois marcherait probablement aussi.

    Généralement utiliser chop() est une mauvaise idée sauf si ton intention est vraiment de "supprimer le dernier caractère d'une chaîne quel qu'il soit" point barre. L'utiliser à la place d'un chomp() n'est en particulier pas une chose à faire.

    --
    Jedaï

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Iop

    en effet tout mes fichiers sont crées sous windows et ensuite sont exportés sur ma machine linux, j'avais entre temps trouvé comment corriger mon probleme mais j'avais oublié de vous dire comment, voici comment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    sub load_access
    {
    	my $path = "users/operator.list";
    	open FILE, $path or die "load_access() erreur: $!";
    	while (my $line = <FILE>)
    	{
    	    chomp $line;
    	    $line =~s/\r$//; # retrait du retour chariot
    	    my @fields = split /\s+/, $line;
    	    if (@fields == 6)
    	    {
    		my $nick = lc($fields[0]);
    		@{$access{$nick}}{ qw(epoch pass host level suspend) } = @fields[1..5];
    		}
    	}
    	close FILE;
    }
    si je le fait a ta maniere, je n'aurai plus besoin d'utiliser chomp dans ce code ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    quelqu'un pourrait me dire si j'utilise

    dans mon code serai-je encore obliger de mettre un chomp avant ?

  5. #5
    Membre Expert
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Par défaut
    Bonjour,

    Non, après cette manipulation, ça sera inutile. Par contre, je ne comprend pas pourquoi ne pas utiliser simplement :
    Qui enlèverais vraiment tout ce qu'il y a en fin de ligne...

  6. #6
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par Woufeil Voir le message
    Bonjour,

    Non, après cette manipulation, ça sera inutile. Par contre, je ne comprend pas pourquoi ne pas utiliser simplement :
    Qui enlèverais vraiment tout ce qu'il y a en fin de ligne...
    Oui, y compris tout espace "blanc" final, dans la plupart des cas c'est souhaitable (probablement ici), mais pas toujours... Je me suis contenté de lui donner un truc qui élimine les caractères de fin de ligne.

    --
    Jedaï

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Par défaut
    Yop,

    Citation Envoyé par Woufeil Voir le message
    Bonjour,

    Non, après cette manipulation, ça sera inutile. Par contre, je ne comprend pas pourquoi ne pas utiliser simplement :
    Qui enlèverais vraiment tout ce qu'il y a en fin de ligne...
    Tout simplement parceque je suis un débutant et que je ne savais pas, en tout cas merci bien.

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

Discussions similaires

  1. Chomp en PHP
    Par Zuthos dans le forum Langage
    Réponses: 4
    Dernier message: 13/05/2009, 18h03
  2. chomp ou pas chomp ?
    Par CKLN00 dans le forum Langage
    Réponses: 12
    Dernier message: 06/06/2008, 15h45
  3. [Pygame] Impossible de faire marcher chop
    Par Neolander dans le forum Programmation multimédia/Jeux
    Réponses: 2
    Dernier message: 31/03/2008, 08h05
  4. Equivalence à la fonction chop() en Perl
    Par samjung dans le forum Langage
    Réponses: 9
    Dernier message: 11/04/2006, 16h41
  5. afficher les chomp d'une table
    Par zidenne dans le forum Bases de données
    Réponses: 1
    Dernier message: 31/10/2005, 11h10

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