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

Windows Forms Discussion :

[VB.NET 2.0] Comparaison de numéro de version


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 212
    Points : 125
    Points
    125
    Par défaut [VB.NET 2.0] Comparaison de numéro de version
    Bonsoir,

    Existe-t'il une fonction ou une méthode pour comparer deux numéros de version de la forme 1.0.0.0 ?

    Je vous demande ça car j'ai intégré une fonction de LiveUpdate à mon programme et je compare donc 2 numéros de version afin de savoir si une mise à jour est dispo ou pas mais je m'en sers également pour tester la présence de fichier sur mon disque et savoir si ceux-ci sont à jour ou pas.

    Merci pour vos réponses

    Ludo

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    tu la classe Version qui te permet de faire ça sans pb.
    Elle redéfini les opérateurs < > et =

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 212
    Points : 125
    Points
    125
    Par défaut
    Je viens de développer cette fonction pour comparer les numéros de version. Vous en pensez quoi ?

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
        Private Function CompareVersion(ByVal strVerA As String, ByVal strVerB As String) As Integer
            'fonction qui compare deux numéros de version de type 1.0.0.0
            'retourne 1 si strVerA > strVerB, 2 si strVerA = strVerB et 3 si strVerA < strVerB
            Dim TabVerA() As String
            Dim TabVerB() As String
            Dim iResult As Integer = 0
     
            TabVerA = Split(strVerA, ".")
            TabVerB = Split(strVerB, ".")
     
     
            If CInt(TabVerA(0)) = CInt(TabVerB(0)) Then
                'le numero de Major Version est identique donc je compare le Minor Version
                If CInt(TabVerA(1)) = CInt(TabVerB(1)) Then
                    'les Minor Version sont identiques donc je compare les Build Version
                    If CInt(TabVerA(2)) = CInt(TabVerB(2)) Then
                        'les build Version sont identiques donc je compare les revision Version
                        If CInt(TabVerA(3)) = CInt(TabVerB(3)) Then
                            'les revision Version sont identiques
                            iResult = 2
                        Else
                            If CInt(TabVerA(3)) > CInt(TabVerB(3)) Then
                                iResult = 1
                            Else
                                iResult = 3
                            End If
                        End If
                    Else
                        If CInt(TabVerA(2)) > CInt(TabVerB(2)) Then
                            iResult = 1
                        Else
                            iResult = 3
                        End If
                    End If
                Else
                    If CInt(TabVerA(1)) > CInt(TabVerB(1)) Then
                        iResult = 1
                    Else
                        iResult = 3
                    End If
                End If
            Else
                If CInt(TabVerA(0)) > CInt(TabVerB(0)) Then
                    iResult = 1
                Else
                    iResult = 3
                End If
            End If
     
            Return iResult
     
        End Function
    Merci

    Ludo

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    J'en pense que tu t'es fait suer pour rien, comme dit précédement la Classe Version fait ça bien mieux ...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 212
    Points : 125
    Points
    125
    Par défaut
    Peut-être mais je n'ai pas trouvé quelle méthode me permettait de faire une comparaison.

  6. #6
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par exclusif
    Peut-être mais je n'ai pas trouvé quelle méthode me permettait de faire une comparaison.
    Comme je l'ai dit, la classe redéfini les opérateurs ...
    donc pour comparer tu utilises :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Version a = new Version("1.0.0.0");
    Version b = new Version("1.0.0.1");
     
    if (a < b )
      Console.WriteLine("A plus petit que b");
    else
    {
        if( a == b )
           Console.WriteLine("=");
       else
          Console.WriteLine(">");
    }
    ...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 212
    Points : 125
    Points
    125
    Par défaut
    En effet c'est beaucoup plus simple ! Du coup je n'ai pas besoin de modifier mon code mais de juste changer les types de mes variables car au départ j'avais déclaré mes VerA et VerB en string.

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/08/2006, 00h57
  2. Réponses: 2
    Dernier message: 11/07/2005, 17h47
  3. Gestion de l'évolution de ma base par numéro de version
    Par jackfirst72 dans le forum Outils
    Réponses: 4
    Dernier message: 16/03/2005, 14h38
  4. Numéro de version renvoyé par Firebird 1.51
    Par jibe74 dans le forum Débuter
    Réponses: 2
    Dernier message: 14/12/2004, 16h23
  5. Gestion du numéro de version d'un projet
    Par Chris B dans le forum EDI
    Réponses: 5
    Dernier message: 22/11/2004, 16h08

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