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 2 mots en arabe


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut Comparaison 2 mots en arabe
    Bonsoir,
    Je débute en perl et je sais que le problème a été déja posé mais pour moi j'ai pas reussi à trouver une solution pour comparer 2 mots en arabe ;
    voila ce que j'ai fait :
    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
     
     
      # supression des retours charriots
    chomp( $liste[0]);
    chomp($tabMot[3]);
     
    # supression des espaces en debut et fin de chaine
    $liste[0] =~ s/^\s+|\s+$//;
    $tabMot[3] =~ s/^\s+|\s+$//;
     
    $string1 = quotemeta $liste[0];
    $string2 = quotemeta $tabMot[3];
     
      if( $string1 eq  $string2)
      {
      print "ok";
      }
      else
      {
      print "ouuups";
      }
    Normalement ça doit marcher mais malgré que les deux mots sont identiques le resultat est toujours "ouuups" , je sais pas quelle est le problème !!
    merci d'avance

  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
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $liste[0] =~ s/^\s+|\s+$//;
    $tabMot[3] =~ s/^\s+|\s+$//;
    Ne suffit pas. S'il y a un espace devant, le (ou les) espace(s) derrière ne sera (seront) pas supprimé(s).

    Exemple sous le debugger:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     DB<19> $c = " toto "
     
      DB<20> $c =~ s/^\s+|\s+$//;
     
      DB<21> x $c
    0  'toto '


    Fais plutôt ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $liste[0] =~ s/^\s+|\s+$//g;
    $tabMot[3] =~ s/^\s+|\s+$//g;
    Ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      DB<22> $c = " toto "
     
      DB<23> $c =~ s/^\s+|\s+$//g;
     
      DB<24> x $c
    0  'toto'
    Mais je ne sais évidemment pas si ton problème est là ou ailleurs.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Vérifie aussi que les deux mots soient bien identiques, car tu compares un mot en position 0 avec un mot en position 3.
    Cliquez ici et reprenez le pouvoir !
    A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com
    Lords Of The Realm II Download : Lords of the realm 2
    Infos en anglais :Ici

  4. #4
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    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 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bonjour,
    Peu importe la langue,
    et le langage, un test compare une chaîne d'octets.

    Ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my $fichier_Ano = "ano.txt";
    open(ANO,">:utf8", $fichier_Ano)
    		or die "Erreur sur ouverture fichier Ano : $fichier_Ano : \n\t $! \n";
     
    print ANO $string1;
    print ANO "\n";
    print ANO $string2;
    close ANO;
    et va voir ce qu'il y a dans ano.txt, éventuellement en hexa, tu en auras le cœur net

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    use strict;
    use warnings;
    use utf8;
     
    my $string1 = "السُّوقِ";
    my $string2 = "السُّوقِ";
     
    my $fichier_Ano = "ano.txt";
    open(ANO,">:utf8", $fichier_Ano)
    		or die "Erreur sur ouverture fichier Ano : $fichier_Ano : \n\t $! \n";
     
    print ANO $string1;
    print ANO "\n";
    print ANO $string2;
     
    chomp ($string1);
    chomp ($string2);
    print ANO "\n\n\n";
    print ANO $string1;
    print ANO "\n";
    print ANO $string2;
     
    if( $string1 eq  $string2) {
      print "1-ok\n";
    } else {
      print "ouuups";
    }
     
    $string1 = quotemeta $string1;
    $string2 = quotemeta $string2;
     
    print ANO "\n\n\n";
    print ANO $string1;
    print ANO "\n";
    print ANO $string2;
     
    if( $string1 eq  $string2) {
      print "2-ok\n";
    } else {
      print "ouuups";
    }
     
    close ANO;
    Strings :
    my $string1 = "السُّوقِ";
    my $string2 = "السُّوقِ";
    fichier ANO :
    السُّوقِ
    السُّوقِ


    السُّوقِ
    السُّوقِ


    السُّوقِ
    السُّوقِ
    Tout semble OK :
    C:\rimenis>perl rimenis.pl
    1-ok
    2-ok

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 128
    Points : 43
    Points
    43
    Par défaut Comparaison 2 mots en arabe
    Bonjour,
    Merci pour vos réponse c'été un problème d'encodage

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

Discussions similaires

  1. [MySQL] Comparaison de mots de passe PHP-MySQL
    Par jaymzwise dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/07/2007, 14h31
  2. Comparaison de mots
    Par Premium dans le forum C
    Réponses: 4
    Dernier message: 26/08/2006, 11h20
  3. [Delphi] Lecture et comparaison de mots de passe
    Par Jayceblaster dans le forum Langage
    Réponses: 6
    Dernier message: 22/04/2006, 12h21
  4. Réponses: 4
    Dernier message: 16/12/2005, 17h43
  5. Encodage et comparaison de mot de passe
    Par SuperCed dans le forum Sécurité
    Réponses: 4
    Dernier message: 27/05/2005, 12h01

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