IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

ignorance de débutant


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut ignorance de débutant
    bonjour, génial ce forum, merci google de m'avoir amené ici

    voilà je début en VBS et j'ai quelques trous de mémoire et mon cours date un peu...

    j'essai d'interroger mes cartes réseaux et j'essai de trier celles qui sont présentes à l'instant T.
    la variable "NetConnectionStatus" me donne cette information.
    seulement c'est une variable de type Uint16, qui me retourne parfois un chiffre (carte physiquement présente) parfois rien (carte absente - ancienne carte retirée du PC)
    voici la question:
    j'aimerais testé quand cette variable est "non vide"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    set colNAs = objWMI.InstancesOf("Win32_NetworkAdapter")
    for each objNA in colNAs
    	if "est_non_vide (objNA.NetConnectionStatus)" then
    		Wscript.Echo objNA.Name
    	end if
    next

    merci pour votre aide

    HB

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut :D
    Salut,

    De mon côté pour vérifier si une variable est non vide je fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if not IsEmpty(ma_var) Then
      ...
     else
      ...
     end if
    Et si j'ai un doute concernant le fait qu'elle soit vide ou nulle je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if not isEmpty(ma_var) and not isNull(ma_var)
    ...
    else
    ...
    end if
    Voilà, j'espère que ça pourra t'aider

    Bon courage

    -M@rc0-

  3. #3
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Recherche sur ce fofo avec comme mot clé Empty et Null, je me souviens d'un sujet où l'on a discuté de la différence entre Empty et null.

    Normalement en VBS une variable est toujours initialisé par défault à Empty et non Null. Null est une valeur renvoyer par certaine méthode d'objet.

    Dans le cas du WMI, les objets que tu utilises, NetConnectionStatus n'est pas une variable mais un attribut de l'objet Win32_NetworkAdapter. Mais on s'en fou, c'est juste pour le vocabulaire.

    Je pense que dans ton cas, la propriété à une valeur ou est à Null, donc utilises la fonction IsNull comme dans l'exemple de marco_fot_hxc. Au passage, le not négationne le résultat du test. Donc si IsNull(paramètre) est vrai, avec le Not cela deviens False et on passe dans le Else.

  4. #4
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut
    Citation Envoyé par ced600 Voir le message
    ...

    Dans le cas du WMI, les objets que tu utilises, NetConnectionStatus n'est pas une variable mais un attribut de l'objet Win32_NetworkAdapter. Mais on s'en fou, c'est juste pour le vocabulaire.

    Je pense que dans ton cas, la propriété à une valeur ou est à Null, donc utilises la fonction IsNull comme dans l'exemple de marco_fot_hxc. Au passage, le not négationne le résultat du test. Donc si IsNull(paramètre) est vrai, avec le Not cela deviens False et on passe dans le Else.
    je n'ai pas le vocabulaire adapté au langage objet désolé, merci de me corriger, je ne savais pas comment l'appelé de "NetConnectionStatus".
    à l'époque ou je codais en ANSI C sous DOS, il n'y avait pas de class, ou bien les prof. eux même ne les connaissaient pas (ce n'était pas dans le programme pédagogique)

    pour le reste je connais NOT IF ELSE, ... ça n'a pas bien changé en 20 ans depuis le BASIC.

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Ok pas de pb, cela fait juste bizzare lorsque l'on est que 2 à répondre et de voir 1 seule personne être remercié.
    Mais il n'y a pas de pb, je comprends que tu n'es pas vu le message. Bon inutile d'en dire plus.

    Bon après je dissémine des conseils comme cela car tant que je ne connais pas le niveau de la personne, et vu ce que j'ai vu sur certain poste, je me dis que même le rappel de notion basique peut être utile

    Globalement pour en revenir à Empty et Null, L'interpréteur VBS initialise toutes les variables par défaut à Empty, et elle ne prendront ensuite la valeur que tu leus affecte dans le programme.

    On voit plus souvent null lorsque l'on manipule les objets. Il n'est pas rare de trouvé des méthodes de ces objets qui te renvois comme valeur quelque chose ou null. Par exemple, lorsque tu essaye de récupérer une collection de ce que tu veux à l'aide d'une méthode d'un objet WMI, elle peut te renvoyer null. Elle peut aussi te renvoyer la collection vide ou pleine

    Donc IsNull pratique pour savoir si une fonction ou une méthode d'un objet ta renvoyé une valeur, un autre objets, ou null.

    Et IsEmpty ne sert théoriquement qu'à tester si la variable bidule a été affecté, ou si elle est encore initialisé par la valeur par défaut.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 83
    Par défaut
    Merci ced600,

    parfait cette petite explication !

  7. #7
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut
    Citation Envoyé par marco_fot_hxc Voir le message
    Salut,

    De mon côté pour vérifier si une variable est non vide je fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if not IsEmpty(ma_var) Then
      ...
     else
      ...
     end if
    Et si j'ai un doute concernant le fait qu'elle soit vide ou nulle je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if not isEmpty(ma_var) and not isNull(ma_var)
    ...
    else
    ...
    end if
    Voilà, j'espère que ça pourra t'aider

    Bon courage

    -M@rc0-

    bien joué Marco, c'était bien dans mon cas , car était FAUX dans tous les cas.

    bravo et longue vie au forum

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Même si marco_fot_hxc a apporté la solution avant moi, j'aurais aimé aussi être remercié pour t'avoir apporté des infos complémentaires.

    Non parce que la en étant exclus de tes remerciements, j'ai l'impression d'être une grosse M..... a qui cela ne vaut même pas la peine de s'adresser.

  9. #9
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 17
    Par défaut MEA CULPA
    toutes mes excuses ced600, loin de moi l'idée de vouloir te zapper
    c'est une pure maladresse de ma part
    sans vouloir me justifier, j'ai simplement voulu remercier le 1er qui m'a apporté la bonne réponse.
    en plus, comme il a utilisé la balise CODE sont post était plus long et a visuellement plus attiré mon regard, alors que ton post très résumé, était plus discret.

    j'espère que tu ne m'en voudras pas trop, t'as bien fait de me le signaler en tout cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07
  2. [Kylix] Re Re: débutant sur Kylix et Linux.....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/06/2002, 22h53
  3. [Kylix] Le débutant en Kylix et Linux....
    Par Eclypse dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 10h37
  4. Réponses: 3
    Dernier message: 07/05/2002, 16h06
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo