Fonction générique de remplacement des accents et autres caractères spéciaux

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 696 fois - Téléchargée 21 fois

Contenu du snippet

par défaut la fonction se contente de remplacer les accents courrants.
avec les arguments optionnels, tout type de caractère peut être remplacé par tout autre, ou bien par rien du tout.
Exemple d'utilisation:
maVar = StripSpecialChars(maVar)
utilisation respectant les majuscules
maVar = StripSpecialChars(maVar, vbBinaryCompare)
ou
maVar = StripSpecialChars(maVar, , "àâäéèêëìîïöôùüûçÀÂÄÉÈÊËÌÎÏÖÔÙÜÛÇ", "aaaeeeeiiioouuucAAAEEEEIIIOOUUUC")
supprimer des caractères spéciaux
maVar = StripSpecialChars(maVar, , "&#{}[]()-|_@°=+*%!?,.;/:'""", "")

peut aussi servir à 'cryptographier' un texte pourquoi pas, juste pour le fun!?
maVarCryptee = StripSpecialChars(MaVar, "abcdefghijklmnopqustuvwxyz", "azertyuiopqsdfghjklmwxcvbn")

Source / Exemple :


Public Function StripSpecialChars(iString As String, Optional _
    CompareMethod As VbCompareMethod = vbTextCompare, Optional Lookup As String _
    = "àâäéèêëïùç", Optional ReplaceBy As String = "aaaeeeeiuc") As String
Dim i As Long

' dans le doute on remplace pas on supprime le caractère
If Len(ReplaceBy) < Len(Lookup) Then ReplaceBy = ""
For i = 1 To Len(Lookup)
    ' on remplace tous les caractères de Lookup 1 par 1 dans iString
    iString = Replace(iString, Mid(Lookup, i, 1), (IIf(ReplaceBy = "", "", _
        Mid(ReplaceBy, i, 1))), , , CompareMethod)
Next i
StripSpecialChars = iString
End Function

Conclusion :


attention, l'utilisation avec vbTextCompare transforme les ÂÊ... en ae (minuscule).

A voir également

Ajouter un commentaire

Commentaires

NHenry
Messages postés
14617
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2020
138 -
Bonjour,

Problème d'encodage, je te suggère de poser ta question sur le forum et pas dans les coms d'une source.
cs_mathilde75
Messages postés
1
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
8 novembre 2007
-
J'ai un petit souci en VB 2005 avec un programme qui créé des page web facilement selon des formulaires créé avec VB 2005. Seulement la page affiche des points d'interrogation à la place des accents. Quelqu'un pourrait m'aider? Je débute.
pifou25
Messages postés
150
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014
-
le vbscript c une référence supplémentaire à ajouter (que je n'ai jamais testé d'ailleurs). Je suppose que c'est assez répandu maintenant mais si mon prog est transmis chez qq1 qui n'a pas cette lib c'est foutu. En général j'évite d'ajouter une référence à mon projet si j'en ai pas besoin. (y'a déjà bien assez de pb sur les produits microsoft sans ajouter des risques d'erreur).
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
59 -
tu m'a devancé violent_ken.

la Microsot VbScript runtime offre la possibilité d'utiliser les RegExp
donc en VB, VBA, vbscript, etc (tout ce qui sait jouer avec des ActiveX)
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
-
Bah, tout ce que je peux dire c'est que VB permet l'utilisation des regex...
@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.