lezabour55
Messages postés22Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention18 juillet 2006
-
4 août 2005 à 13:52
lezabour55
Messages postés22Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention18 juillet 2006
-
6 août 2005 à 14:27
Salut a tous,
Toujours dans ma recherche de transformation de prog C en C#, je
cherche a verifier la parfaite equivalence entre mon morceau de code C
et celui en C#.
Les resultats que j'obtiens sont quasi les memes mais pas exactement,
ce qui me fais dire que mon prog C# n'est pas encore bon...
Tout aide serait la bienvenue :)
EN C cela donne:
fscanf( infile, "%4c", prefix );
fscanf( infile, "%4c", &nChunkSize );
fscanf( infile, "%8c", fileFormat );
fscanf( infile, "%4c", &nChunkSize );
fscanf( infile, "%2c", &wFormatTag );
fscanf( infile, "%2c", &nChannels );
fscanf( infile, "%4c", &nSamplesPerSecond );
fscanf( infile, "%4c", &nAvgBytesPerSecond );
fscanf( infile, "%2c", &nBlockAlign );
fscanf( infile, "%2c", &nBitsPerSample );
fscanf( infile, "%4s", &ckID );
fscanf( infile, "%4c", &nChunkSize );
for( i = 0; (i < nChunkSize);i++ ) {
fscanf( infile, "%1c", &ch );
byteValue = ((float)ch-128)/128;
fprintf(outfile,"%g\n",byteValue);
L Equivalent(??) en C#
BinaryReader binReader = new BinaryReader(File.Open(fileName, FileMode.Open));
if(binReader.PeekChar() != -1)
{
prefix=binReader.ReadChars(4);
nChunkSize = binReader.ReadUInt32();
fileFormat = binReader.ReadChars(8);
nChunkSize2 = binReader.ReadUInt32();
wFormatTag = binReader.ReadUInt16();
nChannels = binReader.ReadUInt16();
nSamplesPerSecond = binReader.ReadUInt32();
nAvgBytesPerSecond = binReader.ReadUInt32();
nBlockAlign = binReader.ReadInt16();
nBitsPerSample = binReader.ReadInt16();
ckID = binReader.ReadChars(4);
nChunkSize3 = binReader.ReadUInt32();
}
StreamWriter monStreamWriter = new StreamWriter(fileName2);
char ch;
for(int i=0;i<nChunkSize;i++) {
ch=binReader.ReadChar();
byteValue = ((float)ch-128)/128;
monStreamWriter.WriteLine(byteValue);
Console.WriteLine("i:"+i);
}
binReader.Close();
monStreamWriter.Close();
Voila en gros ca lis les header dans mon fichier (Wav) et ca ecrit apres les frquences dans un fichiers RAW.
VOila les valeurs des variables n'est pas les memes entre les 2 programmes, de meme que le fichier RAW de sortie....
A mon avis le probleme viens de mes BinaryReader, avec les Int16-Int32....