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 :

Script VBS existant : comparer valeurs


Sujet :

VBScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Script VBS existant : comparer valeurs
    Bonjour à tous

    Je suis actuellement en train de reprendre plusieurs scripts assez anciens réalisés en .vbs

    Je bute sur l'un d'entre eux en particulier, lors de la comparaison de versions.

    Il s'agit d'un fichier qui liste les versions de logiciels.

    2 variables sont définies (version actuelle et version obsolète).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    versionAct="1.7"
    versionObs="1.6"
    Et plus loin dans le code une vérification est réalisée afin de coloriser les différentes versions selon 3 cas de figure :
    - obsolète.
    - ancienne.
    - actuelle.

    Le code qui vérifie la version est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Function SetColor(Version)
     
    	If Version = "1.11.0" Then
    		SetHeadColor = "#40FF00"
     
    	Elseif Version < "10" and Version > versionAct Then
    		SetHeadColor = "#40FF00"
    	Elseif Version <  versionAct and Version > versionObs Then
    		SetHeadColor = "#F7FE2E"
    	Elseif Version <  versionObs Then
    		SetHeadColor = "#DF0101"
     
    End If 	
    End Function
    En fait, tout fonctionnait bien jusqu'à la version 1.9, mais la 1.10 est considérée comme inférieure à la 1.9 (logique me direz-vous).
    J'avais pensé convertir le format de la variable, mais cela ne semble pas exister en vbs.
    Voyez-vous une solution simple à ce problème ?
    Merci de m'avoir lu

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,
    J'avais pensé convertir le format de la variable, mais cela ne semble pas exister en vbs.
    si bien sûr mais ça ne changera rien au problème rencontré
    la solution n'est pas dans le transtypage des variables mais dans la logique
    en réalité la version contient deux numérotations distinctes qui doivent être comparées séparément
    ce n'est pas par hasard si beaucoup de programmes renvoient leur version sous la forme "major"/"minor"/"build"
    une solution parmi une infinité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    VOld = "1.9"
    VNew = "1.10"
     
    If vNew > VOld Then MsgBox "normal" Else Msgbox "Pas normal"
    aVOld = Split(VOld,".") ' renvoie le tableau des items séparés par un point
    aVNew = Split(VNew,".")
    If aVOld(1) > aVNew(1) Then MsgBox "normal" Else Msgbox "Pas normal"
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par omen999 Voir le message
    bonjour,

    si bien sûr mais ça ne changera rien au problème rencontré
    la solution n'est pas dans le transtypage des variables mais dans la logique
    en réalité la version contient deux numérotations distinctes qui doivent être comparées séparément
    ce n'est pas par hasard si beaucoup de programmes renvoient leur version sous la forme "major"/"minor"/"build"
    une solution parmi une infinité :
    Merci pour l'explication et ta solution
    J'ai tenté de l'implémenter, en fait aucune msgbox ne doit être affichée, cela sert juste à colorer un tableau.
    Mais je pense avoir oublié quelque chose, il n'y a pas d'erreur mais aucune couleur
    Il y a sûrement quelque chose que je saisis mal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    If versionAct > versionObs then
    aversionObs = split(versionObs,".")
    aversionAct = split(versionAct,".")
     
    Elseif Version > versionN Then
    	SetHeadColor = "#40FF00"
    	Elseif Version <  aversionN and sersion > aversionO Then
    		SetHeadColor = "#F7FE2E"
    	Elseif Version <  aversionO Then
    		SetHeadColor = "#DF0101"
    	End If 	
     
    End Function

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 183
    Points
    17 183
    Par défaut
    Salut Blazar_Hunter, bienvenue sur DVP,

    Dans un style rapproché d'omen999
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Function Format2(Soumis)
    Dim TblTemp
    TblTemp = Split(Soumis, ".")
    If Len(TblTemp(1)) < 2 Then Soumis = TblTemp(0) & ".0" & TblTemp(1)
    Format2 = Soumis
    End Function
     
     
     
    Dim versionAct, versionObs
    'pour faire des essais
    'versionObs = CStr("1.9"): versionAct = CStr("1.10")
    'versionObs = CStr("1.5"): versionAct = CStr("1.5")
    'versionObs = CStr("1.15"): versionAct = CStr("1.14")
    'versionObs = CStr("1.15"): versionAct = CStr("1.14")
     versionObs = CStr("1.9"): versionAct = CStr("1.7")
     
    versionAct = Format2(versionAct)
    versionObs = Format2(versionObs)
    'MsgBox "versionAct:" & versionAct & "   versionObs:" & versionObs, vbInformation
     
    'Exemples d'utilisation
    If versionAct > versionObs Then  MsgBox "versionAct: " & versionAct & " est plus grand que versionObs: " & versionObs, vbInformation
    If versionAct < versionObs Then MsgBox "versionAct: " & versionAct & " est plus petit que versionObs: " & versionObs, vbInformation
    If versionAct = versionObs Then MsgBox "versionAct: " & versionAct & " est egal à versionObs: " & versionObs, vbInformation
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    rien à ajouter mon cher ProgElecT et mes meilleurs voeux
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. [Débutant] Modifier valeur Xml avec un script VBS
    Par Hub3rt dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/10/2013, 17h26
  2. [Batch] Recuperer valeur de retour d'un script vbs ou js
    Par hannibal.76 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 20/12/2012, 16h54
  3. Probleme recuperation d'une valeur : script vbs -> .bat
    Par pinpin_du_net dans le forum Windows
    Réponses: 3
    Dernier message: 10/05/2005, 12h43
  4. Réponses: 7
    Dernier message: 15/03/2005, 14h44
  5. Imprimer un fichier texte avec un script vbs
    Par Persons dans le forum Windows
    Réponses: 3
    Dernier message: 23/12/2004, 16h47

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