char parseFloatField(char c, float * ptr_val, unsigned char * ptr_count, unsigned char * ptr_dp_count) //La fonction renvoie 0 tant que le décodage n'est pas terminé // 1 lorsque le décodage est terminé correctement // -1 lorsque le décodage a échoué { if (c >= '0' && c <= '9') { (*ptr_val) *= 10; (*ptr_val) += c - '0'; (*ptr_count) = (*ptr_count) + 1; return 0; } else if (c == '.') { (*ptr_count) = 0; (*ptr_dp_count) ++ ; return 0; } else if (c == ',') { while ((*ptr_count) > 0 && (*ptr_dp_count) > 0) // équiptr_valent à (*ptr_val) = (*ptr_val)/(10^*count) { (*ptr_val) = (*ptr_val) / 10; (*ptr_count) = (*ptr_count) - 1; } if((*ptr_dp_count) > 1) return -1 ; (*ptr_count) = 0 ; (*ptr_dp_count) = 0 ; return 1; } else // caractère non supporté dans un nombre { (*ptr_count) = 0; return -1; } }