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

VB.NET Discussion :

Fonction de tri dans une ListView


Sujet :

VB.NET

  1. #1
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut Fonction de tri dans une ListView
    Bonjour à tous.


    Je suis à la recherche d'une fonction de trie dans une listView.

    Alors j'ai trouvé comment faire une fonction de trie ici:

    http://msdn.microsoft.com/fr-fr/libr...43(VS.80).aspx

    Cela marche très bien mais j'ai un souci avec le format de mes données, si bien que la fonction ne marche pas vraiment. J'explique:

    J'ai 4 colonnes, une "IdSite" (le nom du site), une "Nom de la mesure", une "Date de début" et une "Date de fin"

    Le formatage est de la forme:

    IdSite | Nom de la mesure | Date de début | Date de fin
    SiteX |TensionBatterie |26/05/2010 15:00:00 | 12/08/2010 18:40:00
    SiteY |TensionBatterie |28/06/2010 12:50:00 | 30/07/2010 12:51:00
    SiteY |CourantBatterie |01/04/2009 00:00:00 | 04/05/2010 15:00:00


    Voila un exemple au hasard

    Alors pour ce qui concerne la partie texte cela marche très bien, mais vous vous en douté la partie me donnant des jours et heures, cela marche pas.

    Y a t'il un moyen d'arranger sa? Merci

  2. #2
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Je peux te conseiller une façon de faire :

    Par exemple pour une date de type 12/01/2010, tu fais une extraction en récupérant l'année que tu colle au mois et enfin au jour (avec un Instr() par exemple) :

    En gros 12/01/2010 va te donner le nombre : 20100112

    Supposons une deuxième date 24/08/2010 le nombre correspondant sera 20100824

    Tu crées donc ainsi une colonne "nombre" qui correspond à tes dates, et tu tries par ordre croissant ou décroissant sur ces nombres, tu auras alors tes dates dans l'ordre voulu.

    Si tu veux également prendre l'heure tu obtiens un nombre plus long représentant la date et l'heure.

  3. #3
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Merci pour l'info,


    J'ai trouvé une autre solution. Qui est bien bizarre, mais cela marche, d'ailleurs si quelqu'un sait m'expliquer pourquoi je suis preneur.

    Au lieu d'écrire la date en format français Jour/Mois/Année

    Il faut l'écrire en format japonais Année/Mois/Jour

    Et la plus aucun souci de tri, cela marche impeccable

    Donc mon format de date je l'ai écrit maintenant:

    Année/Mois/Jour Heure:Minute:Seconde et cela marche !!!

  4. #4
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    C'est exactement ce que je t'ai dit (je parle au niveau du format date) :-), sauf que je ne passais pas par la fonction tri des dates.

    Tu as donc une fonction "tri" directement sur les dates, mais il faut que cette date soit écrite dans l'ordre année, mois et jour.

    Car tu peux avoir le même mois dans plusieurs années différentes (2010/02, 2008/02) d'où nécessité de comparer en premier l'année, et après sur le même principe, le mois, puis le jour.

    Ainsi sur l'heure il faut comparer l'heure puis la minute puis la seconde, ce qui est le format "classique".

    En gros les comparaisons doivent être faite dans l'ordre des "conteneurs" les plus grands.

    En espérant t'avoir éclairé, étant moi-même éclairé :O.

  5. #5
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Et penses à la balise .

    Merci

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

Discussions similaires

  1. [Débutant] Problème de tri dans une listview
    Par Jean-Luc80 dans le forum VB.NET
    Réponses: 10
    Dernier message: 08/09/2013, 18h43
  2. Fonction recherche dans une listview
    Par salmos04 dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 08/04/2013, 15h54
  3. tri d'un objet dans une listview => mélange d'indices
    Par punky_brooster dans le forum VB.NET
    Réponses: 1
    Dernier message: 03/02/2011, 16h57
  4. Tri par ordre croissant dans une listview
    Par megamario dans le forum VB.NET
    Réponses: 26
    Dernier message: 09/07/2010, 10h01
  5. Tri dans une ListView
    Par essadiki_ista dans le forum VB.NET
    Réponses: 6
    Dernier message: 02/06/2007, 10h56

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