Commit 813e29bb2efa631fe372ccf52804c362551d44bf

Authored by mdupre1
1 parent 690aa1f7

Lecture (non fini)

Showing 1 changed file with 85 additions and 22 deletions   Show diff stats
src/csv_reader_V2.c
... ... @@ -4,32 +4,65 @@
4 4 #include <stdlib.h>
5 5  
6 6 typedef struct Personne Personne;
7   -struct Personne {int athId; int regId; int divId; char* lastName; char* firstName; char gender; int age; char* weight; char* height; int affiliateId; char* affiliateName; int overallScrore; int overallRank; int score18_1; char* scoreDisplay18_1; int rank18_1; int score18_2; char* scoreDisplay18_2; int rank18_2;int score18_2a; char* scoreDisplay18_2a; int rank18_2a;int score18_3; char* scoreDisplay18_3; int rank18_3;int score18_4; char* scoreDisplay18_4; int rank18_4;int score18_5; char* scoreDisplay18_5; int rank18_5; Personne* suivant};
  7 +struct Personne {
  8 + int athId;
  9 + int regId;
  10 + int divId;
  11 + char* lastName;
  12 + char* firstName;
  13 + char gender;
  14 + int age;
  15 + char* weight;
  16 + char* height;
  17 + int affiliateId;
  18 + char* affiliateName;
  19 + int overallScrore;
  20 + int overallRank;
  21 + int score18_1;
  22 + char* scoreDisplay18_1;
  23 + int rank18_1;
  24 + int score18_2;
  25 + char* scoreDisplay18_2;
  26 + int rank18_2;
  27 + int score18_2a;
  28 + char* scoreDisplay18_2a;
  29 + int rank18_2a;
  30 + int score18_3;
  31 + char* scoreDisplay18_3;
  32 + int rank18_3;
  33 + int score18_4;
  34 + char* scoreDisplay18_4;
  35 + int rank18_4;
  36 + int score18_5;
  37 + char* scoreDisplay18_5;
  38 + int rank18_5;
  39 + Personne* suivant;};
  40 +
8 41 typedef Personne* Liste;
9 42  
10 43  
11   -affiche_header_top50()
  44 +void affiche_header_top50()
12 45 {
13 46 printf("Index nom prenom score");
14 47 }
15 48  
16   -affiche_header_recherche()
  49 +void affiche_header_recherche()
17 50 {
18 51 printf("athId nom prenom gender age taille poids score18.1 score18.2 score 18.2a score18.3 score18.4 score18.5");
19 52 }
20 53  
21   -affiche_top50(Personne P, int i)
  54 +void affiche_top50(Personne P, int i)
22 55 {
23   - printf("%d %s %s %d", i , P.lastName, P.firstName, P.score);
  56 + printf("%d %s %s %d", i , P.lastName, P.firstName, P.overallScrore);
24 57 }
25 58  
26   -affiche_recherche(Personne P)
  59 +void affiche_recherche(Personne P)
27 60 {
28 61 printf("%d %s %s %c %d %s %s %d %d %d %d %d %d", P.athId, P.lastName, P.firstName, P.gender, P.age, P.height, P.weight, P.score18_1, P.score18_2, P.score18_2a, P.score18_3, P.score18_4, P.score18_5);
29 62 }
30 63  
31 64 // Conditionals
32   -const bool IS_DEBUG = true;
  65 +const bool IS_DEBUG = false;
33 66  
34 67 // Constants
35 68 const unsigned int BUFFER_SIZE = 2048;
... ... @@ -86,6 +119,15 @@ void read_csv_header(char * header_line)
86 119 if (IS_DEBUG) display_header();
87 120 }
88 121  
  122 +
  123 +void ajout_personne_tab(Personne P, char* token)
  124 +{
  125 +
  126 +
  127 +
  128 +}
  129 +
  130 +
89 131 void read_csv_file(const char * filename)
90 132 {
91 133 FILE* fp = fopen(filename, "r");
... ... @@ -101,28 +143,49 @@ void read_csv_file(const char * filename)
101 143 // 1st row is a header with field descriptions
102 144 fgets(buffer, BUFFER_SIZE, fp);
103 145 read_csv_header(buffer);
  146 +
  147 + Personne P[10];
  148 + unsigned int i = 0;
104 149  
105 150 // Remaining rows are the entries
106 151 while ( NULL != fgets(buffer, BUFFER_SIZE, fp) )
107 152 {
108   - char* token;
109   - unsigned int i = 0;
110   -
111 153 // strtok init.
112   - token = strtok(buffer, CSV_DELIMITERS);
113   -
114   - while (NULL != token)
115   - {
116   - if (IS_DEBUG) printf("Field %d is %s\n", i++, token);
117   -
118   - // ...
119   - // you can strcpy the `token` string in your data structures
120   - // ...
121   -
122   - token = strtok(NULL, CSV_DELIMITERS);
123   - }
  154 + P[i].athId = atoi(strtok(buffer, CSV_DELIMITERS));
  155 + P[i].regId = atoi(strtok(NULL, CSV_DELIMITERS));
  156 + P[i].divId = atoi(strtok(NULL, CSV_DELIMITERS));
  157 + P[i].lastName = strtok(NULL, CSV_DELIMITERS);
  158 + P[i].firstName = strtok(buffer, CSV_DELIMITERS);
  159 + P[i].gender = *strtok(buffer, CSV_DELIMITERS);
  160 + P[i].age = atoi(strtok(buffer, CSV_DELIMITERS));
  161 + P[i].weight = strtok(buffer, CSV_DELIMITERS);
  162 + P[i].height = strtok(buffer, CSV_DELIMITERS);
  163 + P[i].affiliateId = atoi(strtok(buffer, CSV_DELIMITERS));
  164 + P[i].affiliateName = strtok(buffer, CSV_DELIMITERS);
  165 + P[i].overallScrore = atoi(strtok(buffer, CSV_DELIMITERS));
  166 + P[i].overallRank = atoi(strtok(buffer, CSV_DELIMITERS));
  167 + P[i].score18_1 = atoi(strtok(buffer, CSV_DELIMITERS));
  168 + P[i].scoreDisplay18_1 = strtok(buffer, CSV_DELIMITERS);
  169 + P[i].rank18_1 = atoi(strtok(buffer, CSV_DELIMITERS));
  170 + P[i].score18_2 = atoi(strtok(buffer, CSV_DELIMITERS));
  171 + P[i].score18_2a = atoi(strtok(buffer, CSV_DELIMITERS));
  172 + P[i].scoreDisplay18_2a = strtok(buffer, CSV_DELIMITERS);
  173 + P[i].rank18_2a = atoi(strtok(buffer, CSV_DELIMITERS));
  174 + P[i].score18_3 = atoi(strtok(buffer, CSV_DELIMITERS));
  175 + P[i].scoreDisplay18_3 = strtok(buffer, CSV_DELIMITERS);
  176 + P[i].rank18_3 = atoi(strtok(buffer, CSV_DELIMITERS));
  177 + P[i].score18_4 = atoi(strtok(buffer, CSV_DELIMITERS));
  178 + P[i].scoreDisplay18_4 = strtok(buffer, CSV_DELIMITERS);
  179 + P[i].rank18_4 = atoi(strtok(buffer, CSV_DELIMITERS));
  180 + P[i].score18_5 = atoi(strtok(buffer, CSV_DELIMITERS));
  181 + P[i].scoreDisplay18_5 = strtok(buffer, CSV_DELIMITERS);
  182 + P[i].rank18_5 = atoi(strtok(buffer, CSV_DELIMITERS));
  183 +
  184 + i++;
124 185 }
125 186  
  187 + printf("%d ", P[2].regId);
  188 +
126 189 fclose(fp);
127 190 }
128 191  
... ...