[VBS] NOT variabelen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • fRiEtJeSaTe
  • Registratie: September 2003
  • Laatst online: 12-09 11:50
Ik heb onderstaande code, die een printer toevoegt wanneer een gebruik in de groep zit.

If (IsMember(objUser, "Printergroep A") = True) Then
objNetwork.AddWindowsPrinterConnection "\\printerpath"
End If

Nu wil ik een gebruiker excluden. Ik dacht zelf zoals onderstaand, maar dat werkt niet. Weet iemand wat de juiste syntax is?

If (IsMember(objUser, "Printergroep A") = True) & strUser = NOT "voornaam.achternaam" Then
objNetwork.AddWindowsPrinterConnection "\\printerpath"
End If

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sowieso gebruik je & wat AND moet zijn.
Inequality operator is <> (waar dat in C bijvoorbeeld != is)
En NOT hoort voor de expressie: Not a = b

Daar moet je er mee komen. Pak er anders eens gewoon de documentatie bij; doe 's gek ;)

[ Voor 134% gewijzigd door RobIII op 04-05-2010 15:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 15-09 15:57

NetForce1

(inspiratie == 0) -> true

Dit is wel erg basic hoor, maargoed...
Tussen de keywords if en then plaats je een conditie, wat jij nu doet is de conditie opsplitsen, dat gaan niet werken. Daarbij gebruik je & voor booleaanse logica wat niet werkt in VBS, in VBS gebruik je daarvoor het keyword And. Je code wordt dus als volgt:
VBScript:
1
2
3
If (IsMember(objUser, "Printergroep A") And Not(strUser = "voornaam.achternaam")) Then
    objNetwork.AddWindowsPrinterConnection "\\printerpath"
End If

Not is in VBS een functie die je toepast op een conditie, die zet je er dus omheen. Vergelijken met true is ook overbodig, dat is nl. precies wat de if-constructie doet.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


Acties:
  • 0 Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 09-09 10:50
Of je gebruikt gewoon de inequality operator:
code:
1
If strUser <> "voornaam.achternaam" Then ...

Mijn iRacing profiel


Acties:
  • 0 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 00:05

Reptile209

- gers -

NetForce1 schreef op dinsdag 04 mei 2010 @ 15:16:
[...]
Vergelijken met true is ook overbodig, dat is nl. precies wat de if-constructie doet.
offtopic:
't Is overbodig, maar vaak wel leesbaarder. Kwestie van smaak.

Zo scherp als een voetbal!


Acties:
  • 0 Henk 'm!

  • fRiEtJeSaTe
  • Registratie: September 2003
  • Laatst online: 12-09 11:50
NetForce1 schreef op dinsdag 04 mei 2010 @ 15:16:
Dit is wel erg basic hoor, maargoed...
Tussen de keywords if en then plaats je een conditie, wat jij nu doet is de conditie opsplitsen, dat gaan niet werken. Daarbij gebruik je & voor booleaanse logica wat niet werkt in VBS, in VBS gebruik je daarvoor het keyword And. Je code wordt dus als volgt:
VBScript:
1
2
3
If (IsMember(objUser, "Printergroep A") And Not(strUser = "voornaam.achternaam")) Then
    objNetwork.AddWindowsPrinterConnection "\\printerpath"
End If

Not is in VBS een functie die je toepast op een conditie, die zet je er dus omheen. Vergelijken met true is ook overbodig, dat is nl. precies wat de if-constructie doet.
Bedankt voor alle (snelle!) reacties. Bovenstaande optie werkt prima.

Acties:
  • 0 Henk 'm!

  • NickThissen
  • Registratie: November 2007
  • Laatst online: 09-09 10:50
Reptile209 schreef op dinsdag 04 mei 2010 @ 15:21:
[...]

offtopic:
't Is overbodig, maar vaak wel leesbaarder. Kwestie van smaak.
offtopic:
Als de naam van de functie/boolean goed gekozen is dan is het meestal juist leesbaarder als je niet '=True' gebruikt. Een expressie als "If HasMembers" of "If IsPositive" oid vind ik veel leesbaarder dan "If HasMembers = True" of "If IsPositive = True". In het eerste geval is het gewoon engels. In het tweede geval is het meer code die je toch onbewust moet ontcijferen.

Mijn iRacing profiel


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

En het juiste antwoord is:
Dan haal je de gebruiker uit de groep.

Het concept van groepen is niet voor niets in het leven geroepen.

ASSUME makes an ASS out of U and ME

Pagina: 1