Bonjour,
Je cherche un moyen de comparer 2 texte, sans tenir compte de la casse et des accents.
Il semble qu'il faille utiliser la fonction String.Compare, avec une CultureInfo.
Mais quand j'essaye ça :
Ca me retourne -1. Alors que je m'attends à avoir 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Imports System Imports System.Globalization Public Module Module1 Public Sub Main() Console.WriteLine(String.Compare("Jean", "Jeàn", True, New CultureInfo("fr-FR" ))) End Sub End Module
Si je compare "Jean" avec Jexn", ça me retourne aussi -1.
Je sais qu'il y a aussi la possibilité de remplacer toutes les lettres accentuées par leur équivalents simples.
Mais je voudrais trouver une solution un peu plus "propre".
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 Function Sans_accents(ByVal Chaine As String) As String ' R. Dezan + Michel Pierron Dim a As String Dim b As String Dim u As Integer a = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ" b = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy" 'Chaine = Replace(Replace(Replace(Replace(Chaine, "", "oe"), "", "OE"), "æ", "ae"), "Æ", "AE") For i = 1 To Len(Chaine) u = InStr(1, a, Mid(Chaine, i, 1), 0) If u > 0 Then Mid(Chaine, i, 1) = Mid(b, u, 1) Next i Sans_accents = Chaine End Function
Merci d'avance pour votre aide.
Partager