karlakir | Salut vloila, ça marche
merci pour les conseils et à bientot
(et oui je reviendrais avec encore plus d'erreurs )
fichier texte
Code :
- 19800105 19852512 ry fuiui
- 20000000 21110100 iu uio io
- 19821454 20545644 oh
- 19999999 20151522 kkkj jkj
- 21000541 56405440 ouhuh i i
- 19855213 45812344 uig uy gi
- 12014550 45686401 i gt tf yi
- 18562080 45605640 ui g
- 17545645 54406000 iufuf
|
code
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- typedef struct news
- {
- int date_dbt;
- int date_fin;
- char texte[100];
- struct news * suiv;
- } news_t;
- int lecture_fic(char nomfichier[], news_t ** tete);
- void sauvegarde_fichier(news_t * tete);
- news_t * creer_cellule(int date_dbt, int date_fin, char * textu);
- news_t ** recherche_prec(int date_dbt, news_t ** tete);
- void insertion(news_t ** prec, news_t * temp);
- void affichage(news_t * tete);
- /* ******************************************************** */
- /* lecture fichier */
- /* */
- /* enregistre les donnees du fichier dans une SDD */
- /* */
- /* retourne 1 si reussite, 0 sinon */
- /* ******************************************************** */
- int lecture_fic(char nomfichier[], news_t ** tete)
- {
- int code_erreur = 0;
- char * retour_chariot;
- FILE * fic;
- fic = fopen( nomfichier, "r" );
- if (fic)
- {
- int date_dbt;
- int date_fin;
- char texte[100];
- while( !feof(fic))
- {
- fscanf(fic,"%d %d", &date_dbt, &date_fin);
- fgets(texte, 100*sizeof(char),fic);
- retour_chariot = strchr(texte, '\n');
- if ( retour_chariot) *retour_chariot = 0;
- insertion(recherche_prec(date_dbt, tete), creer_cellule(date_dbt, date_fin, texte));
- }
- }
- else
- {
- code_erreur = 1;
- }
- fclose(fic);
- return code_erreur;
- }
- void sauvegarde_fichier(news_t * tete)
- {
- char nom_fic[25];
- FILE * fic;
- printf("Entrer le nom du fichier\n" );
- fscanf(stdin, "%s", nom_fic);
- if (fic = fopen(nom_fic,"w+" ))
- {
- while ( tete != NULL)
- {
- fprintf(fic, "%d %d %s\n", tete->date_dbt, tete->date_fin, tete->texte);
- tete = tete->suiv;
- }
- }
- fclose(fic);
- }
- int date_jour()
- {
- time_t timestamp = time(NULL);
- int date_du_jour;
- strftime(date_du_jour, sizeof(date_du_jour), "%Y%m%d", localtime(×tamp));
- printf("%d\n", date_du_jour);
- }
- news_t ** recherche_prec(int date_dbt, news_t ** tete)
- {
- news_t ** prec, * cour;
- prec = tete;
- cour = * tete;
- while ( (cour != NULL) && (cour->date_dbt < date_dbt) )
- {
- prec = &((*prec)->suiv);
- cour = cour->suiv;
- }
- return prec;
- }
- news_t * creer_cellule(int date_dbt, int date_fin, char textu[])
- {
- news_t * temp;
- temp = malloc(sizeof(news_t));
- if ( temp == NULL)
- {
- printf("\nerreur allocation 2\n" );
- }
- else
- {
- temp->date_dbt = date_dbt;
- temp->date_fin = date_fin;
- strcpy( temp->texte, textu);
- temp->suiv = NULL;
- }
- return temp;
- }
- void insertion(news_t ** prec, news_t * temp)
- {
- temp->suiv = (*prec);
- (*prec) = temp;
- }
- void affichage(news_t * tete)
- {
- printf("********* HERE WE GO! *********\n" );
- while ( tete != NULL)
- {
- printf("%d => %d : %s\n", tete->date_dbt,tete->date_fin,tete->texte);
- tete= tete->suiv;
- }
- printf("*******************************\n\n" );
- }
- int main(int argc, char * argv[])
- {
- news_t * tete = NULL;
- lecture_fic(argv[1], &tete);
- affichage(tete);
- sauvegarde_fichier(tete);
- date_jour();
- return 1;
- }
|
Message édité par karlakir le 11-02-2010 à 21:33:38 ---------------
Si vous avez rien à faire, cliquez ici:
|