Bonjour !
J'essaye de faire une fonction de remplacement de caractère qui sera utilisé très souvent ainsi j'essaye de l'optimiser autant que possible, et c'est pourquoi je me tourne vers vous. J'ai 2 algos et je n'arrive pas à déterminer lequel pourrait être le plus performant ... Car c'est variable selon la chaîne à traiter ...
Quel est selon votre logique, le plus performant des 2 ? Auriez-vous une autre idée pour booster encore ? J'avais songé aux regex, mais je suis pas sûr que ce soit plus rapide ...
Merci de votre avis !
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 Public Shared Function formaterCaractereSpeciaux(ByVal chaineR As String) As String Dim i As Integer Const CS = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåæçèéêëìíîïù" Const CN = "AAAAAAACEEEEIIIIDNOOOOOUUUUUaaaaaaaceeeeiiiiu" Const CR = "²&~#{([|`_\^@)]°}=+^¨$£¤%µ*,?;:/!§<>" For i = 0 To CN.Length - 1 chaineR = chaineR.Replace(CS(i), CN(i)) Next For i = 0 To CR.Length - 1 chaineR = chaineR.Replace(CR(i), " ") Next Return chaineR End Function
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 Public Shared Function formaterCaractereSpeciaux2(ByVal chaineR As String) As String Dim i As Integer Const CS = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåæçèéêëìíîïù" Const CN = "AAAAAAACEEEEIIIIDNOOOOOUUUUUaaaaaaaceeeeiiiiu" Const CR = "²&~#{([|`_\^@)]°}=+'^¨$£¤%µ*,?;:/!§<>" For i = 0 To CS.Length - 1 If chaineR.Contains(CS(i)) Then chaineR.Replace(CS(i), CN(i)) End If Next If chaineR.IndexOfAny(CR) <> -1 Then For i = 0 To CR.Length - 1 chaineR = chaineR.Replace(CR(i), " ") Next End If Return chaineR End Function
Partager