Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/12/2012, 12h13   #1
Socrvvte
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2012
Messages : 3
Points : 1
Points : 1
Par défaut Vérification de la présence de caractères accentués

Bonjour,
étant étudiant en alternance, il m'a été confié dans ma boite la rédaction d'une fonction que mon tuteur implémentera dans son script. Etant plutôt orienté réseau, je suis un peu perdu avec le vbs.

Actuellement, le script vérifie que certaines conditions sont bien remplie lors de la création d'un compte sur l'AD.

Je dois développer la fonction suivante : checker qu'aucun caractère accentué ne soient présent dans le nom et prénom de l'utilisateur crée ou de l'utilisateur à checker. Si de tel caractères sont présent, afficher un message de warning.
Si une âme généreuse pouvait me venir en aide, avec quelques conseil, ou me dire par où commencer ça serait super !

Merci !
Socrvvte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 13h18   #2
pc75
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 3 143
Détails du profil
Informations personnelles :
Âge : 57
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 3 143
Points : 3 319
Points : 3 319
Bonjour,

Tu peux boucler sur les caractères de chaque chaine, puis tester si ces caractères sont bien compris entre A et Z et entre a et z
Code :
1
2
3
4
5
6
7
8
9
10
11
 
For i = 1 to Len(MaChaine)
   If Asc(mid(MaChaine, i, 1)) >= 65 and Asc(mid(MaChaine, i, 1)) <= 90 then
      Test = "OK"
   elseIf Asc(mid(MaChaine, i, 1)) >= 97 and Asc(mid(MaChaine, i, 1)) <= 122 then
      Test = "OK"
   else
      Test = "KO"
   end if
Next
MsgBox Test
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
Pas de questions techniques en MP.
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/12/2012, 14h04   #3
Socrvvte
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2012
Messages : 3
Points : 1
Points : 1
Merci pour ce retour rapide!

Une autre question viens à moi, à la place de "MaChaine" est il possible de renseigner un attribue dans l'AD ( à savoir -> l'attribu cn ou name) ?

Merci encore pour cette réponse.
Socrvvte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 14h30   #4
hackoofr
Expert Confirmé
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 1 701
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 38
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 1 701
Points : 3 884
Points : 3 884
Citation:
Envoyé par Socrvvte Voir le message
Merci pour ce retour rapide!
Une autre question viens à moi, à la place de "MaChaine" est il possible de renseigner un attribue dans l'AD ( à savoir -> l'attribu cn ou name) ?
Merci encore pour cette réponse.
Peut-être tu veux dire comment l’appeler par une fonction
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function Check(MaChaine)
For i = 1 to Len(MaChaine)
   If Asc(mid(MaChaine, i, 1)) >= 65 and Asc(mid(MaChaine, i, 1)) <= 90 then
      Test = "Le nom est accepté !"
   elseIf Asc(mid(MaChaine, i, 1)) >= 97 and Asc(mid(MaChaine, i, 1)) <= 122 then
      Test = "Le nom est accepté !"
   else
      Test = "le Nom Contient un caractère non OK"
   end if
Next
MsgBox Test
End Function
Data = InputBox("check","check","check")
Check Data
hackoofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 16h51   #5
Socrvvte
Invité de passage
 
Homme
Étudiant
Inscription : décembre 2012
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : décembre 2012
Messages : 3
Points : 1
Points : 1
C'est parfait!
Merci beaucoup messieurs !
Socrvvte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2012, 17h58   #6
l_autodidacte
Modérateur
 
Avatar de l_autodidacte
 
Homme Moncef
Directeur de lycée
Inscription : juillet 2009
Messages : 1 214
Détails du profil
Informations personnelles :
Nom : Homme Moncef
Âge : 57
Localisation : Tunisie

Informations professionnelles :
Activité : Directeur de lycée
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 214
Points : 2 226
Points : 2 226
Envoyer un message via Skype™ à l_autodidacte
Sur une remarque de pc75 que je salue par la même occasion, les caractères(voyelles) peuvent contenir des trémas. Pour cela, on peut utiliser ce
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Option Explicit
Dim arrAccents, Cnt, Ret, Msg, i 'Déclaration des variables
' arrAccents : Un tableau contenant les codes ASCII des caractères accentués ou ayant 
' un tréma(2 points sur le caractère), j'ai opté pour ce procédé car mon système est BIDI et 
' m'affiche des bizarreries
arrAccents =Array(192,194,196,200,201,202,203,206,207,212,217,219,220,224,226,228,232,233,234,235,238,239,244,246,249,251,252)
 
Msg = InputBox("Saisir une chaîne de caractères : ","Chaîne à scanner :","Chaîne")
If Msg = "" Then WScript.Quit
CheckAccent Msg
'==============
Private Sub CheckAccent(strIn)
    Dim Trouve
	For Cnt = 0 To Ubound(arrAccents)
	   For i = 1 To Len(strIn)
	      Trouve = (Chr(arrAccents(Cnt)) = Mid(strIn,i,1))
		  If Trouve Then 
		    Ret = Mid(strIn,i,1)
		    MsgBox "Il y a un caractère accentué non autorisé [ " & Ret & " ]"  & " trouvé à la position " & Cstr(i) & " de la saisie." _
	               & VbCrLf & " Veuillez vérifier votre orthographe."
			Exit For
		  End If	
	   Next
    Next	   
End Sub
__________________
A cœur vaillant rien d'impossible
l_autodidacte est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h19.


 
 
 
 
Partenaires

Hébergement Web