begin process at 2012 05 30 18:57:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

tri clist


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tri clist

mercredi 16 novembre 2005 à 21:33:46 | tri clist

ObiWanKennedy

Bonjours, Alors voilà mon problème, je voudrais trier ma Clist mais j'ai quelques problèmes. J'explique vite fait le principe.
Je pars d'une liste vide, j'insére un élement .
ensuite pour insérer un 2eme élément.Je regarde, si la date limite de l'objet à insérer est plus petite que la date de l'élement temp.  Si oui je l'insere avant l'élément temp sinon je continue si sa sort du for sans avoir été inséré, je l'insere en fin.
En gros, dès que je trouve une date supérieure à la date de l'élément que je veux insérer, j'insére et je m'arrete.
cas d'utilisation:
Je rentre une tache dans le futur (tache 2) puis je rentre une tache dans le passé (tache 0) le tri se fait bien. J'entre une tache dans le présent (tache 1),
celà devrai donnée dans mon affichage.
tache 0
tache 1
tache 2
mais cela donne
tache1
tache 0
tache 2

j'ai fait plein de tentative mais ou le tri s'effectu mal ou j'ai droit a une bonne vieille erreur de pointeur (je pense que c'est ma position qui essaie d'aller trop loin) mais là avec ce code, il ne plante pas mais le tri ne s'effectue pas. Enfin si on insère des taches qui ce suivent dans l'ordre chronologique ou anti-chronologique celà fonctionne. Voilà merci.


bool insert=false;

CString type;

m_type.GetLBText(m_type.GetCurSel(),type);

int imp = m_importance.GetPos(); //renvois la position du slider,donc l'importance

CTime tmp;

CTache tache(type,m_nom,m_description,tmp.GetCurrentTime(),m_limite,imp);

CMainFrame* pFrame = (CMainFrame*) theApp.m_pMainWnd;

CWinProjetDoc* pDoc = (CWinProjetDoc*)pFrame->GetActiveDocument();

POSITION pos = pDoc->liste_taches.GetHeadPosition();

//POSITION posfin = pDoc->liste_taches.GetTailPosition();

if(!pDoc->liste_taches.IsEmpty())

{

//temp = pDoc->liste_taches.GetNext(pos);

for(int i=0;(!insert)&&(i < pDoc->liste_taches.GetCount() );i++)//tri i=0 , count=1

{

temp = pDoc->liste_taches.GetNext(pos);

affiche.Format("i=%d, getcount=%d",i,pDoc->liste_taches.GetCount());

if(tache.Getlimite() < temp.Getlimite())//détermine si la tache rentré est avant la tache temp

{

if(i>0)

{

//pDoc->liste_taches.GetNext(pos);

MessageBox("ici 1","Erreur!",MB_OK|MB_ICONSTOP);

//MessageBox("yes","pl");

pDoc->liste_taches. InsertBefore(pos,tache);

MessageBox("ici 2","Erreur!",MB_OK|MB_ICONSTOP);

insert=true;

MessageBox("ici 3","Erreur!",MB_OK|MB_ICONSTOP);

}

else

{

pDoc->liste_taches.AddHead(tache);

insert=true;

}

}

//temp = pDoc->liste_taches.GetNext(pos);

MessageBox(temp.Getnom(),"Erreur!",MB_OK|MB_ICONSTOP);

}

if(!insert)

pDoc->liste_taches.AddTail(tache);

}



Merci


Cette discussion est classée dans : liste, taches, tache, mb, pdoc


Répondre à ce message

Sujets en rapport avec ce message

Cacher MON programme de la liste des taches [ par bily ] Bonjour,je voudrais savoir comment faire pour que mon programme ne s'affiche dans le gestionnaire des taches "ctr + alt + del ";en fait g trouver comm besoin algorithme d'affectation [ par debutant0c ] En fait, le problème consiste à placer n taches sur m machines pour minimiser les retards totaux. La règle est la suivante : placer la tache dont la d structure de données?? [ par debutant0c ] Salut, Je dois écrire un programme EN C qui permet de placer n taches sur m machines tel que une fois une tache terminée placer la tache suivante sur connaitre la liste des modes videos supporte par sa carte graphique. [ par Ether ] tout est dans le titre ;-) faisant de l' Opengl, je voudrais avant connaitre tous les modes de ma carte graphique pour que l'utilisateur puisse chois filtrer la liste des fichiers contenus dans CBCGPShellList par extension [ par khaliloenit ] Salut, J'ai besoin de filtrer la liste des fichiers contenus dans [b]CBCGPShellList [/b]selon leurs extensions. Description du mon problème : J'ai Problème de surcharge de cout (operateur <<) [ par hakimus ] Bonsoir, Voilà, j'essaye d'implémenter ma première surcharge d'opérateur de flux <<, et bien que je fasse tout comme on me dit, ça ne fonctionne pas récupérer la liste des applications visibles dans la barre de tâches [ par dgueul ] Bonjour, Je souhaite créer un gadget vista/seven ayant pour but de remplacer la barre "Démarrer". Là où je bloque, c'est au moment de récupérer la l héritage & template [ par rolm ] Bonjour, J'aurai besoin d'un peu avec des tempates. En fait je voudrais créer une class qui hérite d'une class template mais d'un type donné. par e Récupérer les infos sur les services Windows [ par sen25000 ] Bonjour. Comment afficher dans un fichier/tableau la liste des services Windows de façon à savoir quand ils ont démarré et quand ils se sont arrêtés. Liste des PCs sur un réseaux [ par mohdaef ] Bonjour à tous Cela fait un certain temps que je cherche comment je peux lister les ordinateurs se trouvant sur mon réseau. J'ai jeter un ½il aux fon


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,777 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales