Vérification dans une chaine de caractêre

morefaya
Messages postés
4
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
11 mars 2006
- 11 mars 2006 à 09:19
cs_KifKif
Messages postés
88
Date d'inscription
jeudi 7 mars 2002
Statut
Membre
Dernière intervention
4 avril 2008
- 11 mars 2006 à 16:09
Salut!!
Je vous explique mon problème :
Je saisis un mot dans une texte box et quand je clique sur le bouton enregistrer sa doit le mettre dans une listbox. Mais avant la mise en listbox il doit verifie le mot qd je clique sur enregistrer et doit interdire les chiffres et tous les caractères autres que "-" et espace.
J'ai pu le faire mais sa ne verifie que le debut du mot pas la fin.

Je voudrais verifier tous le mot si c'est possible je vous donne mon code que j'avais déjà fait.

If TxtSaisie = "" Then
MsgBox "Veuillez saisir un mot SVP", vbOKOnly, "ERREUR"
Else


If Asc(TxtSaisie) < 65 Or Asc(TxtSaisie) > 90 And Asc(TxtSaisie) < 97 Or Asc(TxtSaisie) > 122 And Asc(TxtSaisie) 45 And Asc(TxtSaisie) 32 Then 'Effectue un teste pour empêcher la saisie de caractere
Beep
MsgBox "Caractères saisis non acceptés", vbOKOnly, "ERREUR"
Else
ListMots.AddItem TxtSaisie.Text
End If
End If

Je vous remercie d'avance
morefaya ina di place

2 réponses

asecher
Messages postés
262
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
27 avril 2007
1
11 mars 2006 à 13:40
La fonction Asc() ne gère qu'un seul caractère;
J'utilise une fonction du genre (ici en VBS mais applicable facilement en VB)

Dim strInput
strInput=InputBox("entrer la chaîne à vérifier")
if GoodString(strInput) then
wscript.echo "Bonne saisie"
else
Wscript.echo "Mauvaise saisie"
end if
Wscript.quit

''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function GoodString(TheString)
'Renvoie False si la chaine fournie a un caractère qui
'n'est pas dans la constante strGoogCars ou est vide
'sinon, renvoie True
Const strGoodCars=" -ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim iCar '*** N° du caractère de la chaine
GoodString=True '*** la chaine est réputée bonne
For iCar=1 to len(TheString)
if not(InStr(1,strGoodCars,UCase(Mid(TheString,iCar,1))))>0 then
GoodString=False '*** la chaîne contient un mauvais car.
Exit For '*** on sort de la boucle
end if
Next
if len(TheString)=0 then
GoodString=False '*** la chaîne contient un mauvais car.
end if
End Function

Alain 31
0
cs_KifKif
Messages postés
88
Date d'inscription
jeudi 7 mars 2002
Statut
Membre
Dernière intervention
4 avril 2008

11 mars 2006 à 16:09
Solution plus simple
Dim i, j, a$, c$
'tous les caractères interdits dans a$
a$ = "[mailto:1234567890&|@#'(§^!{})_%´`£,?;.:/ 1234567890&|@#'(§^!{})_%´`£,?;.:/]=+~"
For i = 1 To Len(TextSaisie)If InStr(a$, Mid$(TextSaisie, i, 1)) 0 Then c$ c$ + Mid$(TextSaisie, i, 1)
Next
ListMots.AddItem c$

KIfKif
0