cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 28 sept. 2007 à 21:03
Sa s'améliore sans cesse :) Dernier petit tip, au lieu de perror("probleme") tu devrait plutot passer un pointeur vers un int en argument que tu change selon que la fonction a échoué ou non et vérifier que la lecture s'est faite correctement. Sinon sa de plus en plus propre :P
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 27 sept. 2007 à 23:33
Inutile de lire des caractères que l'on n'utilise pas (et encore plus de les lire un par un)
À remplacer par fseek
Digaboy
Messages postés6Date d'inscriptionmardi 7 août 2007StatutMembreDernière intervention27 septembre 2007 27 sept. 2007 à 19:51
merci bien à toi pour cette aide, je ne savais pas que l'on pouvait récupérer 4 bytes d'un coup.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 27 sept. 2007 à 17:46
Oui c'est juste le 256*i que je trouvais bizarre pas le test.
Autre chose : tu pourrais récupérer directement un int32 au lieu d'additionner les char, du genre fread(&final_time,4,1,file)
Digaboy
Messages postés6Date d'inscriptionmardi 7 août 2007StatutMembreDernière intervention27 septembre 2007 27 sept. 2007 à 10:53
Merci pour ces conseils
((256*i ==0) ? 1 : 256*i) ceci me permet de décaler la valeur de 0, 8, 16 ou 24 bits. Mais la première valeur ne doit pas être décalé donc lorsque i==0 je dois conserver la valeur de valeur[i] en la multipliant par 1 au lieu de valeur[i]*256*i car ceci est égal à 0.
mais je pense que je vais, comme tu me l'a conseillé, mettre tout en dur dans mon code.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 26 sept. 2007 à 23:03
Tu peux remplacer for(i=0;i<56;i++) getc(...);
par fread(pBuffer,1,56,pFile);
et (256*i==0)? par (!i)? (je comprends pas pourquoi t'as mis ca en fait)
de plus comme tous tes calculs sont statiques tu pourrais les écrire directement sans boucle for.
28 sept. 2007 à 21:03
27 sept. 2007 à 23:33
for(i=0;i<12;i++) fgetc(test);
Inutile de lire des caractères que l'on n'utilise pas (et encore plus de les lire un par un)
À remplacer par fseek
27 sept. 2007 à 19:51
27 sept. 2007 à 17:46
Autre chose : tu pourrais récupérer directement un int32 au lieu d'additionner les char, du genre fread(&final_time,4,1,file)
27 sept. 2007 à 10:53
((256*i ==0) ? 1 : 256*i) ceci me permet de décaler la valeur de 0, 8, 16 ou 24 bits. Mais la première valeur ne doit pas être décalé donc lorsque i==0 je dois conserver la valeur de valeur[i] en la multipliant par 1 au lieu de valeur[i]*256*i car ceci est égal à 0.
mais je pense que je vais, comme tu me l'a conseillé, mettre tout en dur dans mon code.
26 sept. 2007 à 23:03
par fread(pBuffer,1,56,pFile);
et (256*i==0)? par (!i)? (je comprends pas pourquoi t'as mis ca en fait)
de plus comme tous tes calculs sont statiques tu pourrais les écrire directement sans boucle for.