Bonjour,
Je suis débutant en C++ et il faudrait que je lise un fichier wav bit par bit pour le comparer avec un autre.
Est ce que quelqu'un aurait une idée ?
Merci d'avance
Version imprimable
Bonjour,
Je suis débutant en C++ et il faudrait que je lise un fichier wav bit par bit pour le comparer avec un autre.
Est ce que quelqu'un aurait une idée ?
Merci d'avance
J'ai fait quelques recherches sur le net et voila où j'en suis
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 #include <stdio.h> #include <stdlib.h> int main () { FILE * pFile; long lSize; char * buffer; size_t result; FILE * pFile2; long lSize2; char * buffer2; size_t result2; pFile = fopen ( "./me_gustas_Content.wav" , "rb" ); if (pFile==NULL) {fputs ("File error",stderr); exit (1);} pFile2 = fopen ( "./me_gustas.wav" , "rb" ); if (pFile2==NULL) {fputs ("File2 error",stderr); exit (1);} // obtain file size: fseek (pFile , 0 , SEEK_END); lSize = ftell (pFile); rewind (pFile); fseek (pFile2 , 0 , SEEK_END); lSize2 = ftell (pFile2); rewind (pFile2); buffer = (char*) malloc (sizeof(char)*lSize); if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);} buffer2 = (char*) malloc (sizeof(char)*lSize2); if (buffer2 == NULL) {fputs ("Memory 2 error",stderr); exit (2);} result = fread (buffer,1,lSize,pFile); if (result != lSize) {fputs ("Reading error",stderr); exit (3);} result2 = fread (buffer2,1,lSize2,pFile2); if (result2 != lSize2) {fputs ("Reading2 error",stderr); exit (3);} fclose (pFile); free (buffer); fclose (pFile2); free (buffer2); printf ("%d\n",result); printf ("%d\n",result2); return 0; }
Salut, et bienvenue sur le forum.
D'abord, il faut faire attention: le code que tu présente est - typiquement - exclusivement C...
Pour le reste, autant te le dire tout de suite, je ne suis pas spécialiste des fichiers sonores en tous genre.
Cependant un fichier sonore étant, à la base, un fichier dit... binaire, tu peux te baser sur cette entrée de la FAQ et sur cette autre entrée pour ce qui en est de la lecture même du fichier.
Pour ce qui est de la comparaison, le mieux est peut etre, tout simplement, de "regrouper" les bits par... bytes (des "char" en fait), et de les comparer un à un...
Le tout étant alors de décider la manière de les comparer ;)
Merci je vais suivre ces pistes
Il faudrait le déplacer dans le forum C?