Liste, tri sur date (et non texte de la date)

themaste Messages postés 130 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juillet 2008 - 28 déc. 2004 à 16:46
themaste Messages postés 130 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juillet 2008 - 31 déc. 2004 à 11:34
Bonjour à tous!
Voila, mon problème est que j'ai une liste d'éléments, dont une colonne est remplie par une date.
Mon souci, c'est que lorsque je clique sur le nom de la colonne, la liste est trier selon la date, mais sur un format texte, et non date.
Par exemple, j'ai
24/11/04
25/11/04
26/11/04
26/12/04 <- Lui, il ne devrait pas être là!
27/11/04

Comment puis-je faire pour avoir un tri avec un comportement de date?

Merci à vous tous!

7 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
28 déc. 2004 à 17:52
Utilise strncmp :

char date[] = "26/11/04";
char baddate[] = "26/12/04";

//si tu veux comparer le jour
if (!strncmp(date, baddate, 2)) ...etc
//si tu veux comparer le mois
if (!strncmp(date + 3, baddate + 3, 2)) ..etc
//et enfin l'année
if (!strncmp(date + 6, baddate + 6, 2)) ...etc

Tu pourrais faire ca avec des pointeur aussi, mais c bocou plus simple comme ca.

++

+2(p - n)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 déc. 2004 à 18:03
exemple de tri de listview (je suppose que c'est ça) ic:
http://www.cppfrance.com/code.aspx?id=11151

au lieu de trier sur le texte, faut inserer l'quivalent de la date sur un 32 bits dans le lParam de l'item de la listview et trier sur cela.
Packer une date est hyper simple: 0xYYYYMMDD

ciao...
BruNews, MVP VC++
0
themaste Messages postés 130 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juillet 2008 2
31 déc. 2004 à 10:39
merci brunews!
Cependant je t'avoue, je n'ai pas trop compris l'histoire du lparam
Pourrais tu me montrer un exemple?
Merci....
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 déc. 2004 à 11:00
La struct LVITEM a un membre lParam, insere une valeur dedans et ainsi te servira pour le tri en la relisant.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
themaste Messages postés 130 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juillet 2008 2
31 déc. 2004 à 11:23
il faut dans le lparam qu' jinsere la valeur 0xYYYYMMDD comme tu as dit?
Puisque j'ai un format du style "31/12/04 17:55:12", il faudrait que je mette un format pour ca ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 déc. 2004 à 11:28
Dans l'exemple mis en haut, il n'y avait pas d'heures minutes secondes, va falloir trouver un autre moyen.

ciao...
BruNews, MVP VC++
0
themaste Messages postés 130 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juillet 2008 2
31 déc. 2004 à 11:34
A la rigueur, si le tri n'est fait que sur la date (sans l'heure), cela ne me derangerais pas. Que faut-il que je mette du coup?
item.lparam = ?;
En fait, je n'arrive pas a comprendre comment fonctionne le lparam, son utilisé précise, les possibilités de valeurs...L'aide msdn n'estpas vraiment helpfull!
0
Rejoignez-nous