Commit 813e29bb2efa631fe372ccf52804c362551d44bf
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 | ... | ... |