begin process at 2010 02 10 02:05:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

lecture fichier binaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

lecture fichier binaire

dimanche 11 février 2007 à 11:53:44 | lecture fichier binaire

Mickylord

Membre Club
Salut !
Bon aujourd'hui j'ai un "problème", du moins je pense ...

J'essaye tant bien que mal d'ouvrire un .wav en binaire.
Le problème arrive lorsque j'essaye d'afficher toutes les valeurs que je trouve,

FILE * son1, * son2;

longint frequence;
unsigned short format, mode;
shortint info;
int compte = 0;

if ((son1 = fopen("son.wav","rb")) && (son2 = fopen("son2.wav","rb")))

{

//Ici je me place apres le header
fseek(son1, 44, SEEK_SET);
fseek(son2, 44, SEEK_SET);

while ( fread ( &info, 2, 1, son2 ) )

{
printf(

"Chaine gauche %d\t", info);

fread(&info, 2, 1, son2);
printf(
"Chaine droite %d\n", info);

compte++;

}

printf(

"compte : %d", compte);

}

else

{

printf(

"Probleme avec les fichiers.");

}

-----------
Mes int font du 4 octet, d'ou le short int.

BREF, là c'est terrible...

J'ai un core duo, deux fois 1.5 ghz, et le programme prend une bonne trentaine de seconde avant de terminer la boucle, j'avou que je comprend pas, sourtout que le fichier en question fait 512ko.

J'ai mis un compteur pour compter le nombre de tour, y'en a 132300 !

Sachant que quand j'ouvre le fichier en texte, c'est instantanné, je suis un peu sceptique quand au fonctionnement de mon code.
Bon voila, dites moi que j'ai fait une erreur je vous en prit, je peu pas croire qu'il faille autant de temps pour lire un fichier si petit.

Merci

dimanche 11 février 2007 à 12:03:25 | Re : lecture fichier binaire

sam20

Cavient surement de ta boucle while
dimanche 11 février 2007 à 12:09:14 | Re : lecture fichier binaire

Mickylord

Membre Club
c'est ce que je me dit, mais je vois vraiment pas l'erreur. A la place du while ( fread ( &info, 2, 1, son2 ) )
j'ai essayé aussi while( feof(son2)) et même probleme
dimanche 11 février 2007 à 13:48:25 | Re : lecture fichier binaire

Mickylord

Membre Club
bon je vais m'arraché tout mes cheveux si ca continu !

J'avais écrit que le compteur comptait 132300 tours pour la boucle de lecture du fichier en binaire.
Ce qui est normal car le fichier fait 512ko, si on enlève le header et que compte 2 octets par 2 c'est logique...

oui MAIS !

while ( i < 132300 ) i++;

ne prend pas 30 secondes a s'executer ! (oui oui, avec toute ma rigoureusité scientifique j'ai fait le test !! hehe)
et bien avec la boucle :

while ( fread ( &info, 2, 1, son2 ) )

{
printf(
"Chaine gauche %d\t", info);

fread(&info, 2, 1, son2);
printf(
"Chaine droite %d\n", info);

compte++;

}

ca prend au moins une trentaine de seconde. Alors est-ce que la lecture d'un fichier et l'affichage ralentie à ce point le processeur ? hmm, jsuis sceptique encore là ! Sachant qu'en mode texte c'est instantané ...

AU SECOUUUURS
BruNews aideee moi (t'en suuuuuupliie)! ()

dimanche 11 février 2007 à 14:22:25 | Re : lecture fichier binaire

Mickylord

Membre Club
Réponse acceptée !
Bon, j'ai trouver le problème, et j'avou que j'ai pas été futé sur le coup...

C'est tout simplement le "printf" qui me ralenti completement.

J'sais plus où me mettre là


Cette discussion est classée dans : fichier, printf, compte, info, son2


Répondre à ce message

Sujets en rapport avec ce message

Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM Debutant : ecrire et lire un fichier txt [ par manu ] Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl Analyse fichier log a faire en C [ par Nexouille ] A l'aideeeeeeeeeeeeeeeeeeeeeeeeee***************************************Les serveurs web enregistrent la trace des visites dans des fichiers de log. C recherche d'info dans une ligne d'un fichier [ par GazGaz ] lu all je voudrait savoir si je pouvai faire un recherche dans un fichier, d'un mot ou groupe de mots spécifiques ? genre j'ai une ligne et dans celle [C] lecture d'un fichier [ par GazGaz ] lu allalors voila en fait je lis un fichier en c et le probleme c'est que ce fichier est composé de lignes dont la taille exècede largement les 80 car Aide fichier :) [ par asnow ] Salut a tous :)Voila mon tit code pour ouvrir un fichiervoid Ouverture () {char nomf[20]; printf("Entrez le nom du fichier :"); scanf("%s", nomf [debutant]attribution dun mot a une char et comparaison ... [ par DarkEbola ] en fait, jaurais aimé attribuer du texte a une charkke chose comme 500 ou 600 caracteres maximais jarrive pas a lui attribuer plus de 1 Charsuis-je pl Affichage d'une image BMP en C [ par sabres ] Voici le code source d'un début de programme écrit sous Turbo C/C++ permettant d'afficher les caractéristiques d'une image BMP et de l'afficher. Le pr probleme en langage C - URGENT!!!!! [ par mazo0012 ] bonjourjai un gros pb en C, si quelq'un pouvait m'aider apidement je commence a devenir dingue!!!!!!jexplike:tout simplement, j'essaye de saisir le ch Petit Bug [ par LordBob ] Bonjour a tous,voici deux fonctions:#include #include // Variableschar SourceFile[1024];char DestinationFile[1024];<b


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales