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

Algorithmes et structures de données Discussion :

[comparaison] probleme avec les accents


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Points : 195
    Points
    195
    Par défaut [comparaison] probleme avec les accents
    Salut tout le monde!
    Voila, j ai une liste deroulante editable. Quand je rentre une lettre, je veux que la liste se positionne sur le premier element qui commence par cette lettre, et ainsi de suite...
    Sauf que quand j ai un accent, cette comparaison plante lamentablement! Etant donne que la comparaison utilise le code ASCII, é et e ne sont pas le meme caractere. Et ceci est assez embetant.
    J ai essaye de pondre un programme qui remplace une chaine avec accent par une chaine sans accent (pas tres pratique, puisque é = è = e = ë = ê... mais bon...). Et j ai un truc bizarre qui se passe. Dans ma liste, j ai des mots qui commencent par é, comme émeraude. Si je tape un mot commencant par a,b,c ou d, ca marche normalement. Mais si j ecris une autre lettre, ca rame comme c est pas possible, et je sais pas pourquoi.
    Voila l algo que j ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for(j=0;j<=texte.length;j++){
    			if(dernierelettre == "à" OR dernierelettre == "ä" OR dernierelettre == "â"){
    				on remplace le caractere par a
    			}
    			je fais ca pour tous les caracteres qui peuvent avoir un accent
    		}
    		return texte
    Vous voyez le probleme? Vous avez une autre solution?
    Merci.
    La vie n'est qu'une succession d'éternels recommencements

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Salut,

    Le ramage est dû à quoi? Est-ce que tu fais ta vérification d'accent, et donc ton remplacement de caractère, sur tous les noms de ta liste à chaque fois que tu tapes une lettre accentuée?

    Si oui, c'est normal que ça rame...
    Dans ce cas, il serait pas mal de faire un tableau à deux colonnes, la première contenant le nom réel, la seconde le nom avec les caractères accentués remplacés. Tu affiches ta liste en utilisant la première colonne du tableau, mais tu fais ton indexation et ta recherche sur la seconde.
    Ca devrait moins ramer (ça utilise juste un peu plus de mémoire...)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    Utilise l'API CompareString de Windows à laquelle tu peux passer un flag pour indiquer de ne pas tenir compte des accents. Tu obtiendras plus d'infos dans l'aide du SDK Win32.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Points : 195
    Points
    195
    Par défaut
    Plegat --> c est exactement ce que je fais.
    En fait, je suis sous flash, et j ai des listes. Dans le data, je mets le nom sans accent, et dans le label (celui qui apparait a l ecran), je mets le nom avec accent. Et je fais bien la comparaison sur le data... Du coup, je ne transforme que sur le texte qu on tape.
    Sjrd --> desole, mais c est du chinois pour moi... En plus, faisant le prog sous flash, est ce que ca pourrait marcher? (j ai un doute, mais je vais faire une recherche pour essayer de comprendre ton message. )
    La vie n'est qu'une succession d'éternels recommencements

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Pourquoi vas-tu de 0 jusque texte.length ? Il n'y a pas un souci, là ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Points : 195
    Points
    195
    Par défaut
    Non, parce que pour recuperer la derniere lettre du texte, il faut commencer a 0 (c est avec substr(0,1) que je recupere le premier element)
    La vie n'est qu'une succession d'éternels recommencements

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Ce que veut dire Miles c'est qu'en allant de 0 à text.length tu lis text.length+1 caractères !
    Il y a donc un problème (piège connu du C !).
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 259
    Points : 195
    Points
    195
    Par défaut
    Non, j insiste, y a aucun probleme.
    J ai essaye de virer le text.length en mettant seulement "<", mais ca ne change rien du tout... Mais c est vrai que c etait bizarre quand meme, donc je laisse maintenant "<".
    Mais mon probleme persiste : si j ecris un mot qui commence par une lettre qui se trouve avant "é", alors ca rame pas, mais des que je tape apres....
    Et le plus bizarre, c est que, par exemple, j ai beige rosé, vert.... et ca rame pas quand je l ecris...
    :
    La vie n'est qu'une succession d'éternels recommencements

Discussions similaires

  1. char* => CString probleme avec les accents
    Par kacedda dans le forum MFC
    Réponses: 2
    Dernier message: 26/06/2007, 15h40
  2. probleme avec les accents
    Par tsubasette dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 23/10/2006, 11h49
  3. Probleme avec les accents a partir d'un fichier
    Par doudoustephane dans le forum Access
    Réponses: 5
    Dernier message: 04/07/2006, 16h26
  4. [HTML] Problème avec les accents
    Par hebmaster dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/04/2006, 22h38
  5. Problème avec les accents
    Par Ph.denis dans le forum Mise en forme
    Réponses: 5
    Dernier message: 15/12/2005, 18h03

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