Accueil > Forum > > > > Comparaison de strings sans tenir compte des accents
Comparaison de strings sans tenir compte des accents
samedi 12 avril 2008 à 16:21:38 |
Comparaison de strings sans tenir compte des accents

ThWilliam
|
Bonjour à tous. Mon souci est de comparer deux strings sans tenir compte de la casse ni de l'accentuation. Jusqu'à présent, j'utilisais une fonction qui met le texte en minuscules et remplaçe les voyelles accentuées par les voyelles normales. En regardant l'implémentation de la fonction AnsiCompareText, j'ai vu qu'elle employait la fonction Windows "CompareString". En lui ajoutant le flag "NORM_IGNORENONSPACE", la comparaison ne tient plus compte de l'accentuation. Et c'est beaucoup plus rapide ! "ELEPHANT" = "éléphant". Cela donne : function MyAnsiCompareText(const S1, S2: string): Integer; begin Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE or NORM_IGNORENONSPACE, PChar(S1), Length(S1), PChar(S2), Length(S2)) - 2; end; J'aimerais maintenant pouvoir faire une fonction qui détermine si une sous-chaine est présente dans une chaine. Et donc trouver "elephant" dans "voici deux éléphants". - L'idéal serait de voir si "AnsiContainsText" (unit StrUtils, je n'ai pas son code) utilise une fonction Windows et si cette fonction accepte un paramètre du genre "NORM_IGNORENONSPACE". - Sinon, utiliser une fonction de transformation : j'ai vu la fonction Windows "LCMapString", mais je ne parviens pas en jouant avec les paramètres à retourner une chaine sans accents. - sinon... je continuerai à utiliser ma propre fonction d'enlèvement d'accents (snif). Merci d'avance Thierry
|
|
samedi 12 avril 2008 à 19:10:18 |
Re : Comparaison de strings sans tenir compte des accents

Delphiprog
|
Réponse acceptée !
Juste pour te permettre d'avancer, voici le code de la fonction AnsiContainsText : function AnsiContainsText(const AText, ASubText: string): Boolean; begin Result := AnsiPos(AnsiUppercase(ASubText), AnsiUppercase(AText)) > 0; end; Je t'endends déjà pousser un ouf de soulagement...  May Delphi be with you !
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
|
|
samedi 12 avril 2008 à 19:59:12 |
Re : Comparaison de strings sans tenir compte des accents

ThWilliam
|
Hé oui, si Delphi lui-même n'a pas d'autre solution... je ne me casse plus la tête !
Merci à toi, Delphiprog
|
|
lundi 14 avril 2008 à 16:49:23 |
Re : Comparaison de strings sans tenir compte des accents

florenth
|
Salut,
J'arrive un peu tard mais bon, si tu en as l'envie et le temps, tu peux jeter un oeil sur ces différents algorithmes de recherche de sous-chaîne sur Wikipedia : http://fr.wikipedia.org/wiki/Liste_des_algorithmes#Texte
Ils ne proposent rien quand aux accents mais permettent d'accélérer la recherche comparé aux fonctions de windows si tu fais ces tests dans une boucle, par exemple de la recherche de mots clés ou autre, où seul le texte change et pas la sous-chaîne.
Cela dit, je ne garantis rien..
A+
Flo
|
|
mardi 15 avril 2008 à 18:33:31 |
Re : Comparaison de strings sans tenir compte des accents

ThWilliam
|
Salut Florent,
Merci pour ce lien qui semble très intéressant.
A + Thierry
|
|
Cette discussion est classée dans : fonction, accents, comparaison, compte, norm
Répondre à ce message
Sujets en rapport avec ce message
Comparaison de chaînes de caractères [ par John Dogget ]
Bonsoir à tous.Je cherche une fonction me permettant de trouver si une chaîne S2 se trouve dans une chaîne S1, le tout sans respect de la casse (si po
recherche sans tenir compte des accents [ par lnicos ]
Voilà j'ai fait un programme gérant une base de donnée(interbase), et lorsque j'effectue des recherche dans cette base, j'aimerais que les résultats f
fonction directe pour enlever les accents d'une chaine [ par jeanfre ]
bonjour, ma question est trés simple, existe-t-il sous delphi6 une fonction permettant de supprimer les accents ds un chaine de caractere ?merci.JF
contraste d image [ par valkyrie ]
bonjour a tous et a toutesje suis debutantje dois realiser une fonction graphique noir et blanc permettant de faire varier les niveaux de noir et de b
fonction result TStrings [ par florenth ]
Imaginez une fonction tres simple :function Transfert(memo : TMemo) : TStrings;var i : integer;beginfor i:=0 to memo.Lines.Count - 1 do result.Add(m
kylix :Start et Stop d'une fonction via un bouton [ par yvespa ]
Bonjour,J'aimerai lancer une fonction de longue durée (acquisition de données) via un bouton Start et pouvoir l'arrêter via un bouton Stop.Le problème
PostMessage / SendMessage [ par phoenyx ]
Salut,j'ai besoin d'intéroger une fonction d'un objet (dont je n'ai pas les sources) d'une form et j'ai besoin de son résultat. J'utilise donc SendMes
Utilisaiton de variable avec la fonction Ord [ par aLTsn3ak3r ]
Salut!J'ai une variable et j'ai essayé d'utiliser ma variable dans Ordet jai utiliser la fonction copy pour qu'il insert dnas la variable jsute la pre
La perte de congfiguration des composant delphi [ par yafou ]
c'est une question un peu spéciphiqueje sais que trop de gens ne comprendront pas ce que je raconte ou son utilisté mais je compte trop sur Delphiprog
Tester si un nombre reel est entier [ par Sylvainlefou ]
boujourJe cherche une fonction qui test si un reel est entier.Ce genre de fonction existe dans d'autres languages sous le nom de "isint" mais je n'est
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|