Censurer(remplacer) certains caracteres dans un texte...

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 962 fois - Téléchargée 27 fois

Contenu du snippet

Voila voila,

Comme je codai un p'ti chat g du faire une fonction qui censure certains caracteres pour les pseudos et remplace les espace par _

J'ai d'abord fait une source qui utilisai If car je ne trouvai pas comment faire avec Select Case mais Warny m'a éclairé et j'ai pu le fair avec. Je vous ai mit les 2 exemples.

Pour l'exemple ici vous avec besoin de minimum : 2 TextBox (Text1, Text2) et d'un bouton (Command1)

Source / Exemple :


Private Sub Command1_Click()
    longueur = Len(Text1)
    Text2 = ""
    For i = 1 To longueur
        Text2 = Text2 + Translate(Mid(Text1, i, 1)) 'Fait Appliquer la fonction Translate sur chaques lettres unes après l'autre dans Text1
    Next
End Sub

Function translate(a)
Select Case Asc(a)
Case 58 To 64, 91 To 94
translate = ""
Case 96, 47
translate = ""
Case 45 To 122
translate = a
Case 32
translate = "_"
End Select
End Function

' <-> Ou différament (pour exemple) : <->

Function Translate(a)
    If Asc(a) >= 58 And Asc(a) <= 64 Then
           Translate = ""
    ElseIf Asc(a) >= 91 And Asc(a) <= 94 Then
           Translate = ""
    ElseIf Asc(a) = 96 Then
           Translate = ""
    ElseIf Asc(a) = 47 Then
           Translate = ""
    ElseIf Asc(a) >= 45 And Asc(a) <= 122 Then
           Translate = a
    ElseIf a = " " Then
            Translate = "_"
    Else
            Translate = ""
    End If
End Function

Conclusion :


Voula c'est tout Bon CodInG :)

& Merci à Warny

A voir également

Ajouter un commentaire

Commentaires

cs_max12
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
-
La fonction replace
cs_Warny
Messages postés
478
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015
-
exact, tu remplaces certains caractères par rien, tant pis
Par contre, tu devrais t'inspirer du truc : sur de longues chaines, la concatenation prend un temps monstrueux, il vaut mieux créer une chaine d'une grande longueur et remplacer les caractères, quitte à tronquer après si la chaine est plus courte

pour le case, tu peux même faire ça :
case is > 230
qui sera utilisé si ton argument est supérieur à 230

je te conseille par contre de reporter a dans tous les cas que tu ne décris pas OU seulement dans des cas que tu décris et ne pas le reporter dans les cas que tu ne décrit pas (avec casse else)
C'est pour écrire moins de ligne de code
carabidule
Messages postés
13
Date d'inscription
samedi 10 août 2002
Statut
Membre
Dernière intervention
7 janvier 2004
-
Salut Warny,

Pour Mid(Text1,i,1) = translate(Mid$(Text1,i,1)) Il me met "Valeur requise. impossible de l'affecter a cet expression"

Par contre pour le Select Case tu a bien vu :

Select Case Asc(a)
Case 58 To 64, 91 To 94
Translate = ""
Case 96, 47
Translate = ""
Case 45 To 122
Translate = a
Case 32
Translate = "_"
End Select

V le rajouter en + dans le code,

Merci Mec ;)
cs_Warny
Messages postés
478
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015
-
As-tu essayé des truc comme ça ?
Select Case i
Case 1 to 18:
Case 19,35,85:
Case 20 to 34, 36 to 84:
End select

sinon, il faut écrire pour aller plus vite
Mid(Text1,i,1) = translate(Mid$(Text1,i,1))

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.