Advertisement
mario_mos

de_serialisation

Jul 28th, 2023 (edited)
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <string.h>
  6. /*----------------------------------------------------------------------------------*/
  7. typedef struct Liste
  8. {
  9. int date;
  10. char *auteur;
  11. char *titre;
  12. struct Liste *suivant;
  13.  
  14. }Liste;
  15.  
  16. //appel fonction
  17.  
  18. void serialisation(Liste* root)
  19. {
  20. FILE* file=fopen("list_chainee.txt","w");
  21. if(file == NULL)
  22. {
  23. exit(1);
  24. }
  25. for(Liste* current = root; current != NULL ; current = current->suivant)
  26. {
  27. fprintf(file, "date : %d |titre : %s | auteur %s \n",current->date,current->auteur,current->titre);
  28.  
  29. }
  30. fclose(file);
  31. }
  32.  
  33. //tu lis le fichier et tu fabriques la liste chainée à partir du fichier
  34. void de_serialisation(Liste** root)
  35. {
  36. FILE* file = fopen("list_chainee2.txt","r");
  37.  
  38. if(file == NULL)
  39. {
  40. exit(2);
  41. }
  42. char taillefichier[200];
  43.  
  44. while(fgets(taillefichier, sizeof(taillefichier), file) != NULL);
  45. {
  46. fputs("Added from file |*\n",stdout);
  47. fputs(taillefichier,stdout);
  48.  
  49. }
  50.  
  51. fclose(file);
  52. }
  53.  
  54.  
  55.  
  56. /*--------------------------------------------------------------------------*/
  57. Liste* init(int date ,char *auteur, char *titre );
  58. void ajouter(Liste **debut, int date, char *auteur, char *titre);
  59. void libre_list(Liste *liste);
  60. void imprime(Liste *tmp);
  61.  
  62. /*----------------------------------------------------------------------------------*/
  63.  
  64.  
  65. int main()
  66. {
  67. Liste *liste = NULL;
  68. ajouter(&liste,2022,"Albert","toto");
  69. //imprime(liste);
  70. ajouter(&liste,2023,"Mario","tata");
  71. //printf("anne : %d auteur : %s titre :%s\n",liste->date,liste->auteur,liste->titre);
  72. //imprime(liste);
  73. //serialisation(liste);
  74. de_serialisation(liste);
  75.  
  76.  
  77.  
  78.  
  79.  
  80. libre_list(liste);
  81.  
  82.  
  83. return 0;
  84. }
  85.  
  86. void imprime(Liste *tmp)
  87. {
  88.  
  89. while(tmp != NULL)
  90. {
  91. printf("anne : %d auteur : %s titre :%s\n",tmp->date,tmp->auteur,tmp->titre);
  92. tmp = tmp->suivant;
  93.  
  94. }
  95. }
  96. /*----------------------------------------------------------------------------------*/
  97.  
  98. void libre_list(Liste *liste)
  99. {
  100. Liste *tmp;
  101. while(liste !=NULL)
  102. {
  103. tmp = liste;
  104. liste = liste->suivant;
  105. free(tmp);
  106. }
  107. }
  108.  
  109. /*----------------------------------------------------------------------------------*/
  110.  
  111. Liste* init(int date ,char *auteur, char *titre )
  112. {
  113. Liste *liste = malloc(sizeof(Liste));
  114. //Pour strcpy il faut un malloc pour chaque item de la classe
  115. // Liste *date = (Liste *) malloc(sizeof(date));
  116. // Liste *auteur = (Liste *) malloc(sizeof(auteur));//ajout
  117. // Liste *titre = (Liste *) malloc(sizeof(titre));//ajout
  118. liste->date = date;
  119. liste->auteur = auteur;
  120. liste->titre = titre;
  121. liste->suivant = NULL;
  122. //Pour strcpy il faut un malloc pour chaque item de la classe
  123. //debut->suivant->date = date;
  124. // strcpy(debut->suivant->auteur,auteur);
  125. // strcpy(debut->suivant->titre,titre);
  126. return liste;
  127. }
  128.  
  129. /*----------------------------------------------------------------------------------*/
  130. void ajouter(Liste **debut, int date, char *auteur, char *titre) {
  131.  
  132. Liste *newlist = init(date,auteur,titre);
  133. if(*debut == NULL)
  134. {
  135. *debut = newlist;
  136.  
  137. }
  138. else
  139. {
  140. newlist->suivant = *debut;
  141. *debut = newlist;
  142. };
  143. }
  144.  
  145. /*----------------------------------------------------------------------------------*/
  146.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement