Suppression de caractères

Résolu
Signaler
Messages postés
9
Date d'inscription
lundi 9 avril 2007
Statut
Membre
Dernière intervention
7 septembre 2011
-
 Utilisateur anonyme -
Bonsoir,
Je cherche à éliminer d'une chaîne tous les caractères autres que les lettres de l'alphabet de A à Z et les dix chiffres de 0 à 9. Auriez-vous une idée du code?

7 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
Bonsoir

Qu'as tu déja écrit ?
comment penses tu procéder ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Qu'as tu déja écrit ?
comment penses tu procéder ?


"Good question"
juste pour savoir... même avec un simple algo ... juste pour savoir ...
un coup de pouce : les fonctions Asc, Chr, et Mid ... ===>> un peu d'effort, maintenant .

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut

Oui, pour être efficace, il faut connaitre les instructions de base :
- Len pour la longueur de ta chaine
- For Next pour faire une boucle
- Mid pour isoler un caractère dans une chaine
- Asc pour connaitre le code ASCII d'un caractère
- Chr pour tansformer un code ASCII en caractère
Le reste, les explications et les exemples, est dans l'aide et dans tes propres essais.
Conseil : Charge, lis et analyse des codes parmi celles du site qui traitent de chaine de caractères : tu y trouveras forcement un exemple proche de ce que tu cherches à faire.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Salut tout le monde,

Un petit coup de main...

Dim Str, Texte As String
Dim CodeAscii, i As Integer
Str = "ml IOLk mk654'/*: ;,?ù^%mùlùFJ Csd s82"
Texte = ""
For i = 1 To Str.Length
CodeAscii = (Asc(Mid(Str, i, 1)))
If (CodeAscii > 47 And CodeAscii < 58) Or _
(CodeAscii = 32) Or _
(CodeAscii > 64 And CodeAscii < 91) Or _
(CodeAscii > 96 And CodeAscii < 123) Then
Texte = Texte & Chr(CodeAscii)
End If
Next i
Me.Text = Str & " - " & Texte



CF2i - Guadeloupe
Ingénierie Informatique

Pardon,
La ligne 'For i = 1 To Str.Length' je crois qu'en VB6 sera:
For i = 0 To Len(Str) -1

CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour acive,

gaffe : Str est un mot réservé sous VB6
Bon...
Je pense que suffisamment de temps s'est écoulé maintenant et que l'on peut en effet proposer une/des solution(s).
En voilà une entre autres ===>>
chaine = "ml IOLk mk654'/*: ;,?ù^%mùlùFJ Csd s82"
tabl = Split(StrConv(chaine, vbUnicode), Chr(0))
For i = 0 To UBound(tabl)
  If Not UCase(tabl(i)) Like "[A-Z]" Or IsNumeric(tabl(i)) Then tabl(i) = ""
Next
MsgBox Join(tabl, "")



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Merci UC...
Désolé mes CDs d'installation de VB6 sont morts (ils ont un peu d'âge ) et ma mémoire aussi.
J'aurais voulu simplifier le code comme t'as fait, mais sans VB6 c'est pas évident...



CF2i - Guadeloupe
Ingénierie Informatique