Sur le principe je pense que tu peux faire ainsi, mais il devrait y avoir plusieurs méthodes:
-1- Teste du texte (tout ou partie) dans une variable -2- Extraction de chaque caractère en notant sa position et le caractère (2 variables) -3- Par un select case, déterminer si le caractère doit être pris en compte, à quelle famille il appartient (a,e)... -4- Dans le select case, si caractère retenu, le transformer par celui voulu dans la chaîne (caractère + position)
Tu peux aussi par les instructions de chaîne, faire une boucle pour tester chaque cas à remplacer, et le remplacer directement si trouvé -> voir les instructions de chaînes, si tu veux plus de détails demande :o)
-- Merci, @+, bye, Joe troll75 AROBASE iFrance POINT com ------------------------------------------ Ce message est plein de virus "certifiés" Le_Troll, éleveur de Trolls depuis César, qui disait: Avec une hache, celui qui tient le manche a toujours raison ! ------------------------------------------
"Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news: cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
Bonjour,
Sur le principe je pense que tu peux faire ainsi, mais il devrait y
avoir plusieurs méthodes:
-1- Teste du texte (tout ou partie) dans une variable
-2- Extraction de chaque caractère en notant sa position et le caractère (2
variables)
-3- Par un select case, déterminer si le caractère doit être pris en compte,
à quelle famille il appartient (a,e)...
-4- Dans le select case, si caractère retenu, le transformer par celui voulu
dans la chaîne (caractère + position)
Tu peux aussi par les instructions de chaîne, faire une boucle pour tester
chaque cas à remplacer, et le remplacer directement si trouvé -> voir les
instructions de chaînes, si tu veux plus de détails demande :o)
--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------
"Christian HUBERT-HUGOUD- Xtrem7" <c.hubert-hugoud@xtrem7.com> a écrit dans
le message de news: cdls0c$51$1@aphrodite.grec.isp.9tel.net...
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les
accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue
non-accentué (é devient e, à devient a, etc).
Sur le principe je pense que tu peux faire ainsi, mais il devrait y avoir plusieurs méthodes:
-1- Teste du texte (tout ou partie) dans une variable -2- Extraction de chaque caractère en notant sa position et le caractère (2 variables) -3- Par un select case, déterminer si le caractère doit être pris en compte, à quelle famille il appartient (a,e)... -4- Dans le select case, si caractère retenu, le transformer par celui voulu dans la chaîne (caractère + position)
Tu peux aussi par les instructions de chaîne, faire une boucle pour tester chaque cas à remplacer, et le remplacer directement si trouvé -> voir les instructions de chaînes, si tu veux plus de détails demande :o)
-- Merci, @+, bye, Joe troll75 AROBASE iFrance POINT com ------------------------------------------ Ce message est plein de virus "certifiés" Le_Troll, éleveur de Trolls depuis César, qui disait: Avec une hache, celui qui tient le manche a toujours raison ! ------------------------------------------
"Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news: cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
Zoury
Salut Christian ! :O)
Tu peux te faire une fonction qui boucle les caractères un à un et le remplace par sa version non accentué...
Private Sub RemoveAccent(ByRef sChaine As String)
Dim i As Long Dim c As String
For i = 1 To Len(sChaine) Select Case Mid$(sChaine, i, 1) Case "à", "â", "ä" Mid$(sChaine, i, 1) = "a" Case Else ' ajoute le reste... (et les majuscules ;O) ) End Select Next i
End Sub
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news:cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
Salut Christian ! :O)
Tu peux te faire une fonction qui boucle les caractères un à un et le
remplace par sa version non accentué...
Private Sub RemoveAccent(ByRef sChaine As String)
Dim i As Long
Dim c As String
For i = 1 To Len(sChaine)
Select Case Mid$(sChaine, i, 1)
Case "à", "â", "ä"
Mid$(sChaine, i, 1) = "a"
Case Else ' ajoute le reste... (et les majuscules ;O) )
End Select
Next i
End Sub
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Christian HUBERT-HUGOUD- Xtrem7" <c.hubert-hugoud@xtrem7.com> a écrit dans
le message de news:cdls0c$51$1@aphrodite.grec.isp.9tel.net...
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les
accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue
non-accentué (é devient e, à devient a, etc).
Tu peux te faire une fonction qui boucle les caractères un à un et le remplace par sa version non accentué...
Private Sub RemoveAccent(ByRef sChaine As String)
Dim i As Long Dim c As String
For i = 1 To Len(sChaine) Select Case Mid$(sChaine, i, 1) Case "à", "â", "ä" Mid$(sChaine, i, 1) = "a" Case Else ' ajoute le reste... (et les majuscules ;O) ) End Select Next i
End Sub
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/ http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/ "Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news:cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
Vincent Guichard
Zoury a écrit :
Mid$(sChaine, i, 1) = "a"
Tiens, je savais pas qu'on pouvait utiliser Mid$ comme l-value... C'est pratique, ça.
Par contre ça marche pas pour Left$ et Right$ ?
Vincent Guichard
Zoury a écrit :
Mid$(sChaine, i, 1) = "a"
Tiens, je savais pas qu'on pouvait utiliser Mid$ comme l-value... C'est
pratique, ça.
"Vincent Guichard" a écrit dans le message de news:cdm2ug$usk$
Zoury a écrit : > Mid$(sChaine, i, 1) = "a"
Par contre ça marche pas pour Left$ et Right$ ?
Vincent Guichard
David
Bonjour Christian,
Voila qui devrait faire l'affaire :
Public Function ReplaceSpecialChars(ByVal arg_String As String, Optional ByVal arg_SpecialChar As String = "âäàêëéèîïôöûüùç", _ Optional ByVal arg_ReplaceChar As String = "aaaeeeeiioouuuc", Optional ConvertUpperCase As Boolean = True) As String Dim intI As Integer, intMax As Integer, strTemp As String
For intI = 1 To intMax strTemp = IIf(arg_ReplaceChar = "", "", Mid(arg_ReplaceChar, intI, 1)) arg_String = Replace(arg_String, Mid(arg_SpecialChar, intI, 1), strTemp) Next intI If ConvertUpperCase Then arg_String = ReplaceSpecialChars(arg_String, UCase(arg_SpecialChar), UCase(arg_ReplaceChar), False) ReplaceSpecialChars = arg_String End Function
a+ Jean-Pol DAVID mailto: ICQ 28394733 -- Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ? "Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news: cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
Bonjour Christian,
Voila qui devrait faire l'affaire :
Public Function ReplaceSpecialChars(ByVal arg_String As String, Optional
ByVal arg_SpecialChar As String = "âäàêëéèîïôöûüùç", _
Optional ByVal arg_ReplaceChar As String = "aaaeeeeiioouuuc",
Optional ConvertUpperCase As Boolean = True) As String
Dim intI As Integer, intMax As Integer, strTemp As String
For intI = 1 To intMax
strTemp = IIf(arg_ReplaceChar = "", "", Mid(arg_ReplaceChar, intI,
1))
arg_String = Replace(arg_String, Mid(arg_SpecialChar, intI, 1),
strTemp)
Next intI
If ConvertUpperCase Then arg_String = ReplaceSpecialChars(arg_String,
UCase(arg_SpecialChar), UCase(arg_ReplaceChar), False)
ReplaceSpecialChars = arg_String
End Function
a+
Jean-Pol DAVID
mailto:david.sa@skynet.be
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Christian HUBERT-HUGOUD- Xtrem7" <c.hubert-hugoud@xtrem7.com> a écrit dans
le message de news: cdls0c$51$1@aphrodite.grec.isp.9tel.net...
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les
accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue
non-accentué (é devient e, à devient a, etc).
Public Function ReplaceSpecialChars(ByVal arg_String As String, Optional ByVal arg_SpecialChar As String = "âäàêëéèîïôöûüùç", _ Optional ByVal arg_ReplaceChar As String = "aaaeeeeiioouuuc", Optional ConvertUpperCase As Boolean = True) As String Dim intI As Integer, intMax As Integer, strTemp As String
For intI = 1 To intMax strTemp = IIf(arg_ReplaceChar = "", "", Mid(arg_ReplaceChar, intI, 1)) arg_String = Replace(arg_String, Mid(arg_SpecialChar, intI, 1), strTemp) Next intI If ConvertUpperCase Then arg_String = ReplaceSpecialChars(arg_String, UCase(arg_SpecialChar), UCase(arg_ReplaceChar), False) ReplaceSpecialChars = arg_String End Function
a+ Jean-Pol DAVID mailto: ICQ 28394733 -- Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ? "Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news: cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
Zoury
Salut David! :O)
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise du tout.. :O) je crois toutefois que la version suivante serait plus rapide : '*** Option Explicit
Private Sub Main() Debug.Print RemoveAccent("Boîte de réception") End Sub
Private Function RemoveAccent(ByVal sText As String) As String
Const ACCENTUATED_CHARSET As String "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ" Const REPLACEMENT_CHARSET As String "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC" Dim i As Long Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) If (lPos > 0) Then Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1) End If Next i RemoveAccent = sText
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise du
tout.. :O)
je crois toutefois que la version suivante serait plus rapide :
'***
Option Explicit
Private Sub Main()
Debug.Print RemoveAccent("Boîte de réception")
End Sub
Private Function RemoveAccent(ByVal sText As String) As String
Const ACCENTUATED_CHARSET As String "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ"
Const REPLACEMENT_CHARSET As String "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC"
Dim i As Long
Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET)
lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1))
If (lPos > 0) Then
Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1)
End If
Next i
RemoveAccent = sText
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise du tout.. :O) je crois toutefois que la version suivante serait plus rapide : '*** Option Explicit
Private Sub Main() Debug.Print RemoveAccent("Boîte de réception") End Sub
Private Function RemoveAccent(ByVal sText As String) As String
Const ACCENTUATED_CHARSET As String "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ" Const REPLACEMENT_CHARSET As String "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC" Dim i As Long Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) If (lPos > 0) Then Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1) End If Next i RemoveAccent = sText
Ta programmation est tout simplement génial ! Ici, en Belgique, c'est la fête nationale (21 juillet) alors scrute le ciel, il y aura sûrement,ce soir, un feu d'artifice tiré en ton honneur !
a+ Jean-Pol DAVID mailto: ICQ 28394733 -- Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ? "Zoury" a écrit dans le message de news: uRZ#
Salut David! :O)
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise
du
tout.. :O) je crois toutefois que la version suivante serait plus rapide : '*** Option Explicit
Private Sub Main() Debug.Print RemoveAccent("Boîte de réception") End Sub
Private Function RemoveAccent(ByVal sText As String) As String
Const ACCENTUATED_CHARSET As String > "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ" Const REPLACEMENT_CHARSET As String > "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC" Dim i As Long Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) If (lPos > 0) Then Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1) End If Next i RemoveAccent = sText
Ta programmation est tout
simplement génial !
Ici, en Belgique, c'est la fête nationale
(21 juillet) alors scrute le ciel, il y
aura sûrement,ce soir, un feu d'artifice
tiré en ton honneur !
a+
Jean-Pol DAVID
mailto:david.sa@skynet.be
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ?
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de news:
uRZ#HC0bEHA.4092@TK2MSFTNGP10.phx.gbl...
Salut David! :O)
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise
du
tout.. :O)
je crois toutefois que la version suivante serait plus rapide :
'***
Option Explicit
Private Sub Main()
Debug.Print RemoveAccent("Boîte de réception")
End Sub
Private Function RemoveAccent(ByVal sText As String) As String
Const ACCENTUATED_CHARSET As String > "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ"
Const REPLACEMENT_CHARSET As String > "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC"
Dim i As Long
Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET)
lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1))
If (lPos > 0) Then
Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1)
End If
Next i
RemoveAccent = sText
Ta programmation est tout simplement génial ! Ici, en Belgique, c'est la fête nationale (21 juillet) alors scrute le ciel, il y aura sûrement,ce soir, un feu d'artifice tiré en ton honneur !
a+ Jean-Pol DAVID mailto: ICQ 28394733 -- Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ? Quando ? "Zoury" a écrit dans le message de news: uRZ#
Salut David! :O)
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise
du
tout.. :O) je crois toutefois que la version suivante serait plus rapide : '*** Option Explicit
Private Sub Main() Debug.Print RemoveAccent("Boîte de réception") End Sub
Private Function RemoveAccent(ByVal sText As String) As String
Const ACCENTUATED_CHARSET As String > "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ" Const REPLACEMENT_CHARSET As String > "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC" Dim i As Long Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) If (lPos > 0) Then Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1) End If Next i RemoveAccent = sText
Private Declare Function LCMapString _ Lib "Kernel32" _ Alias "LCMapStringA" _ ( _ ByVal Locale As Long, _ ByVal dwMapFlags As Long, _ ByVal lpSrcStr As String, _ ByVal cchSrc As Long, _ ByVal lpDestStr As String, _ ByVal cchDest As Long _ ) _ As Long
Private Sub Command1_Click() MsgBox RemoveAccent("åãùêéè") End Sub
Private Function RemoveAccent(strIn As String) As String Dim DestString As String Dim DestSize As Long
DestSize = LCMapString(0, NORM_IGNORENONSPACE, strIn, Len(strIn), DestString, 0) If DestSize Then DestString = String$(DestSize, vbNullChar)
If LCMapString(0, NORM_IGNORENONSPACE, strIn, Len(strIn), DestString, DestSize) Then RemoveAccent = DestString End If End If End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news:cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
Hello,
J'peux y aller à coup d'APIs?
Private Declare Function LCMapString _
Lib "Kernel32" _
Alias "LCMapStringA" _
( _
ByVal Locale As Long, _
ByVal dwMapFlags As Long, _
ByVal lpSrcStr As String, _
ByVal cchSrc As Long, _
ByVal lpDestStr As String, _
ByVal cchDest As Long _
) _
As Long
Private Declare Function LCMapString _ Lib "Kernel32" _ Alias "LCMapStringA" _ ( _ ByVal Locale As Long, _ ByVal dwMapFlags As Long, _ ByVal lpSrcStr As String, _ ByVal cchSrc As Long, _ ByVal lpDestStr As String, _ ByVal cchDest As Long _ ) _ As Long
Private Sub Command1_Click() MsgBox RemoveAccent("åãùêéè") End Sub
Private Function RemoveAccent(strIn As String) As String Dim DestString As String Dim DestSize As Long
DestSize = LCMapString(0, NORM_IGNORENONSPACE, strIn, Len(strIn), DestString, 0) If DestSize Then DestString = String$(DestSize, vbNullChar)
If LCMapString(0, NORM_IGNORENONSPACE, strIn, Len(strIn), DestString, DestSize) Then RemoveAccent = DestString End If End If End Function
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Christian HUBERT-HUGOUD- Xtrem7" a écrit dans le message de news:cdls0c$51$
Bonjour,
Je récupère une string qui doit être un futur nom de fichier php. Or, les accents sont très mal gérés en php.
Je voudrais donc remplacer les caractères accentués par leur homologue non-accentué (é devient e, à devient a, etc).
Existe-t-il une façon simple de faire cela ?
Christian
François Picalausa
Hello,
juste une question, est-ce qu'il n'y a que le premier accent qui compte?
Debug.Print RemoveAccent("Boîte de réception et éléphants roses")
Je propose donc un: Private Function RemoveAccent(ByVal sText As String) As String Const ACCENTUATED_CHARSET As String = _ "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ" Const REPLACEMENT_CHARSET As String = _ "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC" Dim i As Long Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) Do While (lPos > 0) Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) Loop Next i RemoveAccent = sText
End Function
Mais personellement, je passe mes journées à mesurer des longueurs en Ångström ( http://en.wikipedia.org/wiki/%C5ngstr%F6m - y en a qui n'ont rien de mieux a faire, vous pensez? je confirme ) Mais apparement le Å n'est pas reconnu... pas plus que les õ... Tout ça pour dire: ma fonction avec les api elle est mieux :-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Zoury" a écrit dans le message de news:uRZ%
Salut David! :O)
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise du tout.. :O) je crois toutefois que la version suivante serait plus rapide :
Hello,
juste une question, est-ce qu'il n'y a que le premier accent qui compte?
Debug.Print RemoveAccent("Boîte de réception et éléphants roses")
Je propose donc un:
Private Function RemoveAccent(ByVal sText As String) As String
Const ACCENTUATED_CHARSET As String = _
"âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ"
Const REPLACEMENT_CHARSET As String = _
"aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC"
Dim i As Long
Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET)
lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1))
Do While (lPos > 0)
Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1)
lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1))
Loop
Next i
RemoveAccent = sText
End Function
Mais personellement, je passe mes journées à mesurer des longueurs en
Ångström ( http://en.wikipedia.org/wiki/%C5ngstr%F6m - y en a qui n'ont rien
de mieux a faire, vous pensez? je confirme )
Mais apparement le Å n'est pas reconnu... pas plus que les õ...
Tout ça pour dire: ma fonction avec les api elle est mieux :-)
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Zoury" <yanick_lefebvre@hotmail.com> a écrit dans le message de
news:uRZ%23HC0bEHA.4092@TK2MSFTNGP10.phx.gbl
Salut David! :O)
L'idée d'employer des chaines au lieu d'un select case n'est pas
mauvaise du tout.. :O)
je crois toutefois que la version suivante serait plus rapide :
juste une question, est-ce qu'il n'y a que le premier accent qui compte?
Debug.Print RemoveAccent("Boîte de réception et éléphants roses")
Je propose donc un: Private Function RemoveAccent(ByVal sText As String) As String Const ACCENTUATED_CHARSET As String = _ "âäàêëéèîïìôöòûüùçÂÄÀÊËÉÈÎÏÌÔÖÒÛÜÙÇ" Const REPLACEMENT_CHARSET As String = _ "aaaeeeeiiiooouuucAAAEEEEIIIOOOUUUC" Dim i As Long Dim lPos As Long
For i = 1 To Len(ACCENTUATED_CHARSET) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) Do While (lPos > 0) Mid$(sText, lPos, 1) = Mid$(REPLACEMENT_CHARSET, i, 1) lPos = InStr(sText, Mid$(ACCENTUATED_CHARSET, i, 1)) Loop Next i RemoveAccent = sText
End Function
Mais personellement, je passe mes journées à mesurer des longueurs en Ångström ( http://en.wikipedia.org/wiki/%C5ngstr%F6m - y en a qui n'ont rien de mieux a faire, vous pensez? je confirme ) Mais apparement le Å n'est pas reconnu... pas plus que les õ... Tout ça pour dire: ma fonction avec les api elle est mieux :-)
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Zoury" a écrit dans le message de news:uRZ%
Salut David! :O)
L'idée d'employer des chaines au lieu d'un select case n'est pas mauvaise du tout.. :O) je crois toutefois que la version suivante serait plus rapide :