Bonjour,
J’ai créé un fichier contenant des chaînes de caractères, lorsque j’effectue une recherche et que la chaîne contient une lettre accentuée la recherche n’abouti pas. Comment faire ?
Bonjour,
J’ai créé un fichier contenant des chaînes de caractères, lorsque j’effectue une recherche et que la chaîne contient une lettre accentuée la recherche n’abouti pas. Comment faire ?
LA Règle : ne jamais utiliser de lettres accentuées dans la nomination de tes fichiers et dossiers.
Je vais quand même regarder ce que tu peux faire techniquement pour traiter les accents. Je te tiens au courant.
J’y avais pensé, le problème est que les chaînes sont des noms de ville les accents sont important, les enlever ne m’arrange pas vraiment, mais merci du tuyau.
A part traiter tous les cas d'accents possibles je ne vois pas.
Ah oui au fait j'ai oublié de te dire pourquoi ta recherche n'aboutit pas!
En fait, tes accents sont "codés" dans ta chaîne de caractère (par exemple avec un truc du style \201).
Le problème c'est qu'il existe plusieurs formats de stockage qui diffèrent selon les machines et les systèmes d'exploitation.
Si tu veux voir ce que tu obtiens, fais un point d'arrêt juste après avoir stocké ta chaîne de caractère dans ta variable et regarde ce que contient ta variable.
D'ailleurs, ça serait bien si tu pouvais nous dire ce que tu obtiens pour qu'on sache dans quel format tu te trouves.
Si tu n'envisages pas de portabilité de ton code, il sera toujours possible de traiter le cas particulier de ta machine.
Je pense qu'il y a beaucoup plus simple: les lettre accentuées étant toutes contenues dans un UTF16 (supplément latin 1), il te suffit alors de lire ton fichier à coups de wstring ce qui te permettra alors d'identifier les accent. Ensuite, je pense qu'il faut faire une petite fonction du typeet d'appeler cette fonction sur les chaines à comparer à chaque fois que tu en a besoin. L'autre solution (pour éviter la copie) étant de faire un find sur les lettre accentuée et de modifier ta chaine ou une copie unique de ta chaine dans le programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part string sansaccents(const wstring &);
Bonne chance
Tiens j'ai encore appris un truc aujourd'hui. ^^
Merci pour vos aides, moi aussi j'ai encore appris quelque chose.
Partager