Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vbscript : majuscule et miniscule ? - casse

6 réponses
Avatar
ben
Bonjour,

J'ai un soucis avec la casse.
La variable userClass (attribut department user dans l'AD) est en majuscule.
Le Group est en minuscule .
Bien qu'ils portent le même nom, le script les considère comme différent .
Avez vous une idée pour résoudre ce problème ?.

***********************************************
if userCLASS <> "" then

userMemberOf = ""
found = 0
userMemberOf = objUser.GetEx("MemberOf")
For Each Line In userMemberOf
Group=""
Group = split(split(Line,",")(0),"=")(1)
if userClass = Group then found=1
Next
***********************************************
Merci.
Cordialement.

6 réponses

Avatar
Gilles LAURENT [MVP]
"ben" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'ai un soucis avec la casse.
| La variable userClass (attribut department user dans l'AD) est en
| majuscule. Le Group est en minuscule .
| Bien qu'ils portent le même nom, le script les considère comme
| différent . Avez vous une idée pour résoudre ce problème ?.
[...]

VBScript dispose de deux fonctions permettant de convertir une chaine de
caractères en minuscule (LCase) ou majuscule (UCase). Donc pour comparer
deux chaines de caractères en ignorant la casse :

If LCase(userClass) = LCase(Group) Then bFound=True

ou alors

If UCase(userClass) = UCase(Group) Then bFound=True

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
ben
MERCI, cher ami.

"Gilles LAURENT [MVP]" wrote:

"ben" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'ai un soucis avec la casse.
| La variable userClass (attribut department user dans l'AD) est en
| majuscule. Le Group est en minuscule .
| Bien qu'ils portent le même nom, le script les considère comme
| différent . Avez vous une idée pour résoudre ce problème ?.
[...]

VBScript dispose de deux fonctions permettant de convertir une chaine de
caractères en minuscule (LCase) ou majuscule (UCase). Donc pour comparer
deux chaines de caractères en ignorant la casse :

If LCase(userClass) = LCase(Group) Then bFound=True

ou alors

If UCase(userClass) = UCase(Group) Then bFound=True

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





Avatar
ben
Rebonjour,

J'ai essaié :
If LCase(userClass) = LCase(Group) Then bFound=True
ou alors
If UCase(userClass) = UCase(Group) Then bFound=True

Cela ne marche pas.
userclass CM1 et différent du Groupcm1 ?.
***********************************************
if userCLASS <> "" then

userMemberOf = ""
found = 0
userMemberOf = objUser.GetEx("MemberOf")
For Each Line In userMemberOf
Group=""
Group = split(split(Line,",")(0),"=")(1)
'if userClass = Group then found=1
If UCase(userClass) = UCase(Group) Then bFound=True
'If LCase(userClass) = LCase(Group) Then bFound=True

Next
if found = 0 then
data = "-----> " & userPreWindows & ": Gr=" & Group & " Dept=" &
userClass
'data = "-----> " & userPreWindows & ": " & Group & " " & userClass
wscript.echo data
file.writeLine data
*********************************************************
Cordialement.

"Gilles LAURENT [MVP]" wrote:

"ben" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'ai un soucis avec la casse.
| La variable userClass (attribut department user dans l'AD) est en
| majuscule. Le Group est en minuscule .
| Bien qu'ils portent le même nom, le script les considère comme
| différent . Avez vous une idée pour résoudre ce problème ?.
[...]

VBScript dispose de deux fonctions permettant de convertir une chaine de
caractères en minuscule (LCase) ou majuscule (UCase). Donc pour comparer
deux chaines de caractères en ignorant la casse :

If LCase(userClass) = LCase(Group) Then bFound=True

ou alors

If UCase(userClass) = UCase(Group) Then bFound=True

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





Avatar
Gilles LAURENT [MVP]
"ben" a écrit dans le message de
news:
| Rebonjour,

Re !

| J'ai essaié :
| If LCase(userClass) = LCase(Group) Then bFound=True
| ou alors
| If UCase(userClass) = UCase(Group) Then bFound=True
|
| Cela ne marche pas.
| userclass CM1 et différent du Groupcm1 ?.

Dans mon exemple, j'utilise la variable booléenne "bFound" tandis que
dans votre script vous utilisez d'une part la variable entière "found"
et la variable booléenne "bFound". Il faut donc homogénéïser tout cela
et vous verrez ! cela ira mieux ensuite :-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
ben
Avec cette modifie cela marche.
If UCase(userClass) = UCase(Group) Then found=1

Quelle différence entre bfound=true et found=1 ?.

Cordialement.


"Gilles LAURENT [MVP]" wrote:

"ben" a écrit dans le message de
news:
| Rebonjour,

Re !

| J'ai essaié :
| If LCase(userClass) = LCase(Group) Then bFound=True
| ou alors
| If UCase(userClass) = UCase(Group) Then bFound=True
|
| Cela ne marche pas.
| userclass CM1 et différent du Groupcm1 ?.

Dans mon exemple, j'utilise la variable booléenne "bFound" tandis que
dans votre script vous utilisez d'une part la variable entière "found"
et la variable booléenne "bFound". Il faut donc homogénéïser tout cela
et vous verrez ! cela ira mieux ensuite :-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





Avatar
Gilles LAURENT [MVP]
"ben" a écrit dans le message de
news:
| Avec cette modifie cela marche.
| If UCase(userClass) = UCase(Group) Then found=1
|
| Quelle différence entre bfound=true et found=1 ?.

- le nom de la variable (bFound <> found)
- le type de la variable (booléen <> entier)

Boolean, type de donnée :
http://msdn.microsoft.com/fr-fr/library/wts33hb3(VS.80).aspx

Quelques exemple :
WScript.Echo TypeName (1=1)
=> Boolean
WScript.Echo TypeName(1)
=> Integer
WScript.Echo TypeName(CBool(1))
=> Boolean
WScript.Echo True
=> -1
WScript.Echo False
=> 0
WScript.Echo CStr(1=1)
=> Vrai
WScript.Echo CStr(0=1)
=> Faux

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr