Hello ,
Je posséde ce fichier de donée :
Le 12 minutes 16/02/200900:0000:25La une Actualite
Une brique dans le ventre 16/02/200900:2500:50La une Magazine
JT traduction gestuelle 16/02/200900:5006:00La une Actualite
Matin premiere 16/02/200906:0009:40La une Actualite
Affaires a suivre 16/02/200909:4010:05La une Magazine
Une brique dans le ventre 16/02/200910:0510:30La une Magazine
Je vourdrai l'ajouté dans une liste chainée directement à la bonne place (tri par date puis heure) .
J'ai déja ce code qui trie par date mais ne j'arrive pas a trié par heure .
while(fgets(ligne,sizeof(ligne),fdat)) {
n++;
effacerSautLigne(ligne);
strcpy(date,"");
strncpy(date,ligne+40,10);
noeud_precedent=depart;
noeud=(programmeTv*) depart->suivant;
while((noeud) && compareDate(date,noeud->date)>0){
noeud = (programmeTv*)noeud->suivant;
noeud_precedent = (programmeTv*)noeud_precedent->suivant;
//tri par heure mais fctne pas
while((noeud) && compareNom(heureDeb,noeud->heureDeb)>0){
noeud = (programmeTv*)noeud->suivant;
noeud_precedent = (programmeTv*)noeud_precedent->suivant;
}
//fin tri par heure
}
nouveau_noeud = (programmeTv *) malloc(sizeof(programmeTv));
nouveau_noeud->suivant=noeud;
noeud_precedent->suivant = nouveau_noeud;
strncpy(nouveau_noeud->nom,ligne,40);
strcpy(nouveau_noeud->date,date);
//strcpy(nouveau_noeud->heureDeb,heure);
strncpy(nouveau_noeud->heureDeb,ligne+50,5);
strncpy(nouveau_noeud->heureFin,ligne+55,5);
strncpy(nouveau_noeud->chaine,ligne+60,10);
strncpy(nouveau_noeud->genre,ligne+70,20);
}
Les fonctions compareDate et compareNom sont l'equivalent d'un strcmp.
Détails de la structure :
typedef struct {
char nom[41];
char date[13];
char heureDeb[6];
char heureFin[6];
char chaine[11];
char genre[21];
struct programmeTv *suivant;
} programmeTv;
MErci d'avance