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 :

comparaison string avec eq


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 29
    Par défaut comparaison string avec eq
    Bonsoir à tous,

    c'est toujours avec les fichiers arabes... donc je suis en train de comparer deux mots, voilà le code que je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
        chomp($tab[$i]);
        if($tab[$i] =~ 'مفرد')
         { 
     
        $singularForm= $tab[$i+1]; 
         last;
        }
    avec ce code il me donne des résultats mais parfois faux vue qu'il compare tous les mots contenant la chaine مفرد

    mais si je change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        if($tab[$i] eq 'مفرد')
    il y a aucun résultat à afficher !!!!
    qu'elle est le problème SVP ?

  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
    Billets dans le blog
    1
    Par défaut
    Hum, je ne connais pas l'arabe et n'ai jamais codé de programme Perl pour cette langue, donc je vais peut-être dire une bêtise. Es-tu sûre que ta chaîne Perl est bien interprétée comme une chaîne de quatre lettres en arabe ("'مفرد'")? Quand j'essaie d'imprimer cette chaîne en Perl, j'obtiens la chaîne littérale, pas quatre lettres en arabe.

  3. #3
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    Bonjour,
    Parce que tu jongles entre le HTML et Perl, du coup ce n'est pas facile à suivre...

    IL ME SEMBLE,
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($tab[$i] =~ /مفرد/)
    soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($tab[$i] eq 'مفرد')
    Et voila que je ne peux pas afficher ce que je veux !


    [Edit 05:45] pour essayer, mais sans succès de lui faire afficher les différentes notations...
    donc avec ~= c'est / /
    et avec eq c'est ' '

    [Edit 06:15] Ajout :


    [perluète ou « et » commercial]# NNNN (CA c'est de la notation HTML) &#NNNN
    Perl utilise la notation hexadécimale :
    \x{0645}\x{0641}\x{0631}\x{062F} (CA c'est de la notation Perl) \x{HHHH}

    (16) -> (10)
    م 0645 -> 1605
    ف 0641 -> 1601
    ر 0631 -> 1585
    د 062F -> 1583

    NB : il n'en fait qu'à sa tête, il arrange çà comme bon lui semble dans la dernière ligne !
    NB : j'ai collé avec les caractères arabes en début de ligne !
    En Perl \x{HHHH}.
    Les caractères HTML / XML sont à peu près les mêmes.
    HTML utilise &#NNNN; Où NNNN est un nombre décimal.
    XML utilise &#xHHHH; Où HHHH est un nombre hexadécimal.

    et quand on colle des [perluète ou « et » commercial]# NNNN
    dans le forum qui est écrit en HTML, la conversion s'affiche d'office...
    Pas facile à suivre quand on ne manipule pas des chaînes arabes à longueur de journée...

    [Edit 06:40] @Lolo78
    J'avais soumis un pb de chaînes arabes avec les diacritiques (accents) dans Tk à djibril lorsque j'ai commencé à jouer avec les chaînes arabes,
    Lorsque un texte en arabe comporte les diacritiques le seul fait de cliquer sur la chaîne dans un éditeur de texte désorganise complètement la chaîne !
    C'est à se taper la tête contre les murs

    La cause vient de ce que les caractères diacritiques en arabe (autres langues ex: Thai) sont des caractères à espacement nul...
    Ce sont des caractères qui ont leur propre codification, et qui sont susceptibles de se positionner sous/sur TOUTES les autres lettres.
    Ce n'est pas comme 'notre' ê qui se tape en deux fois mais qui est converti en UN SEUL code UTF8 ou autre...


    [Edit: 09:30]
    Winjerome vient de me communiquer :
    Mauvais affichage des caractères spéciaux dans les codes
    MERCI pour l'info Winjerome

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il y a mécompréhension sur l'usage du HTML dû à un bogue d'affichage du forum (que je viens de reporter ici). Il faut lire les deux lignes de code de Ftina comme suit :
    Code Perl : Sélectionner tout - Visualiser dans une fenêtre à part
    if($tab[$i] =~ 'مفرد')
    Code Perl : Sélectionner tout - Visualiser dans une fenêtre à part
    if($tab[$i] eq 'مفرد')

  5. #5
    Membre Expert Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 452
    Par défaut
    MERCI Winjerome

    @Ftina
    Et donc pour la première ligne présentée par Winjerome
    Pour les ~= il faut remplacer les ' par des /

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Le délimiteur ' (ou ") est autorisé pour les regexp, de même que l'on peut écrire m{pattern}.

    Mais il est clair que pour éviter les confusions, l'usage de / (ou de l'opérateur m( )) est préférable.

Discussions similaires

  1. Comparaison String avec une valeur d'un JSONObject
    Par DiR95 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 06/01/2016, 01h09
  2. Réponses: 4
    Dernier message: 15/05/2008, 17h38
  3. Réponses: 3
    Dernier message: 03/03/2008, 10h30
  4. [XSLT]Problème sur une comparaison if avec des strings
    Par LoDev dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 18/01/2008, 09h27
  5. Comparaison de String avec jokers
    Par kitsune dans le forum Langage
    Réponses: 8
    Dernier message: 22/05/2006, 15h21

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