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 974 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

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

Problème d'encodage, je te suggère de poser ta question sur le forum et pas dans les coms d'une source.
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.
Messages postés
144
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).
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
66
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)
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Bah, tout ce que je peux dire c'est que VB permet l'utilisation des regex...
@+
Afficher les 13 commentaires

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.