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

C++ Discussion :

Comparaison de version de fichier


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Comparaison de version de fichier
    Bonjour,

    Je souhaite effectuer une comparaison de deux "version" ex : 10.25.32 000 est il superieur à 10.26.32 000.

    Aurriez vous une idée sur la manière la plus simple afin d'effectuer une comparaison (j'ai juste besoin d'une fct).

    Je souhaite d'abord regarder si les deux versions sont de même longeur.
    Si une version est plus longue, il faudra automatiquement compléter l'autre version avec des 0 (en fin).

    Si elle sont déjà de longeur identique alors :

    On compare le premier digit (numériquement)
    Si il sont égale on compare le deuxième etc..

    Exemples :

    Ex 1 :
    version en place = 10.25.32 000
    version nouvelle = 10.26.32 000

    Les deux versions sont de tailles identiques.

    10 est égale à 10 | donc on passe au suivant | 25 est inférieur à 26 | donc la version en place est inférieur à la nouvelle version

    Ex 2:
    version en place = 7.9.9 000
    version nouvelle = 7.9.2 000

    Les deux versions sont de tailles identiques.

    7 est égale à 7 | donc on passe au suivant | 9 est égale à 9 | donc on passe au suivant | 9 est supérieur à 2 | donc la version en place est supérieur à la nouvelle version

    Ex 2:
    version en place = 3.1.1 000
    version nouvelle = 3.1.1

    La version à plus d'élements que la nouvelle version donc on complète la nouvelle version 3.1.1.

    3 est égale à 3 | 1 est égale à 1 | 1 est égale à 1 | 0 est égale à 0 | 0 est égale à 0 | 0 est égale à 0 | donc les deux versions sont identique.

    Auriez vous une idée, une piste ou mieux un exemple pour m'aider ?

    Merci à tous,

    Cordsialement,

    Drkns

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Tes numeros de versions sont toujours :

    10.25.32 000 comme ça ?

    Il suffit de faire une structure avec la numero de version (MAJEUR, MINEUR, RELEASED...), et je ne vois plus trop le problème. Eventuellement faire même une classe avec une fonction de comparaison, une fonction de conversion (de string en ta structure...) pis stou.
    Je ne répondrai à aucune question technique en privé

  3. #3
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    ou alors, pour encore simplifier le tout, tu crées un classe qui s'occupe de découper le tout, et tu surcharges les opérateurs <, >, == et autres

    Sinon, pour comparer, je ne vois pas d'autre manière que celle que tu as citée.

    PS: quand tu auras fait la fonction / structure / classe, tu peux me l'envoyer par MP stp ? ca m'intéresse !

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Si le nombre de digits entre chaque point est égal pour les deux versions, tu peux te contenter d'une comparaison lexicographique :

    std::string Version1 = "10.25.32 000";
    std::string Version2 = "10.26.32";

    if (Version1 > Version2)
    {
    // Version 1 est supérieure à version 2
    }
    Ca ne marchera pas pour ça par exemple :

    Version1 = "10.25.32 000";
    Version2 = "10.9.32";

Discussions similaires

  1. [Utilisation] CVS et le versionning de fichiers WORD ?
    Par elitost dans le forum CVS
    Réponses: 6
    Dernier message: 09/03/2009, 11h15
  2. [CLI] Récupérer la version des fichiers à une date donnée
    Par jreeman dans le forum CVS
    Réponses: 1
    Dernier message: 27/02/2007, 11h35
  3. Récupérer les informations de version de fichiers
    Par myribert dans le forum VBScript
    Réponses: 2
    Dernier message: 22/09/2006, 14h39
  4. [JAR] Manifest et comparaison de version
    Par nana1 dans le forum Général Java
    Réponses: 3
    Dernier message: 23/02/2006, 18h01
  5. Création version client - fichiers non trouvés
    Par Pascal dans le forum WinDev
    Réponses: 7
    Dernier message: 03/12/2004, 11h34

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